2009年4月22日 星期三

各大瀏覽器 javascript引擎比較

2008年,Javascript引擎逐漸成為流覽器領域的競爭焦點。
Webkit6月發佈了SquirrelFish引擎,然後SquirrelFish Extreme也出現。
Firefox8月發佈了TraceMonkey,
Google9月隨Chrome發佈了V8,
Opera的Futhark以及今年2月發佈了Carakan,
3月蘋果在Safari 4 beta中發佈了Nitro引擎。
IE 的Trident(MSHTML)於於四月發佈JavaScript5.8 (http://www.ithome.com.tw/itadm/article.php?c=54457)

性能比較
http://www.fwvv.net/info/2008/09/05/20080905-67045.shtml
http://pingyeh.blogspot.com/2008/09/google-chrome.html

2009年4月17日 星期五

暫存

ASP/ASP.NET/PHP 的選擇



利用微软WebService技术实现远程数据库存取 利用web服务在不同站点间共享同一数据库


http://dev.rdxx.com/NET/Services/2001-9/10/10313281_2.shtml
http://dev.rdxx.com/NET/Services/2001-2/8/103035767.shtml

ASP.NET MVC中使用ASP.NET AJAX异步访问WebService

http://www.zxbc.cn/html/webservice/index_15.html
http://blog.williamgates.biz/category/tech/webservice/http://dob.tnc.edu.tw/themes/old/showPage.php?s=2369&t=298
http://www.google.com.tw/search?q=.net%E4%B8%8B%E5%AD%98%E5%8F%96php+webservice&hl=zh-TW&rlz=1B3GGGL_zh-TWTW319TW319&start=30&sa=N

http://www.google.com.tw/search?q=C/S+webservice+linux&hl=zh-TW&rlz=1B3GGGL_zh-TWTW319TW319&start=10&sa=N

http://www.google.com.tw/search?q=%E5%8F%96%E4%BB%A3webservice&hl=zh-TW&rlz=1B3GGGL_zh-TWTW319TW319&start=20&sa=N

win2003上iis与tomcat的整合

web server and web service

WebService初探(推荐)〔开心本人特别看好WebService〕

什麼是Web Service

整合也可是IT簡單任務?

ref: http://bilingual.rdec.gov.tw/KM/KM/prog/epaper/23/index.php

【資料來源: 台灣微軟產品行銷經理 許建志 2004/06/25】

整合概念看似簡單,真正實作可不是如此。或許你建立的一個Java Web service,只要再利用ASP.NET呼叫這個Web service,就可輕鬆將Hello World字串傳送過去。剛開始你也許會覺得很感動,但很快的…,就會發現企業應用程式所面對資料型別的複雜性,根本不是簡單的一個小範例可處理的。

不論是考慮整合.NET與J2EE的技術選項,或是計畫利用第三方協力廠商所開發的整合軟體進行互通,入門第一堂課就必須了解-在不同平台與應用程式的展示層、中介層與資料層之間,資料是如何傳遞的。

在異質平台之間進行資料交換通常會面對的挑戰可分成三大類,基本上多是資料相容性的問題,包括:

  • 基本資料型別的對應:不論是.NET的Common Language Runtime(CLR),還是Java都有字串的資料型別,但這是否代表CLR的System.String類別等同於Java的java.lang.string類別?
  • 不存在的資料型別:基本資料型別之外,不同平台也會有特殊的資料型別,而需完成資料對應的動作。舉例來說,是不可能在Java中找到內建且可對應至CLR的System.Collections.Specialized.HybridDictionary等資料型別。
  • 複雜的資料型別:許多應用程式都會將基本資料型別組合成自訂化的資料型別,也許是客戶資料、股票資料等;若是客戶資料則可能包含客戶名稱、地址、電話、年齡等資訊,又該如何在其他平台上處理這些自訂化的資料型別呢?

最後一種狀況也是最常見且困難度最高的整合挑戰。一般而言,要進行複雜資料型別的資料交換工作,常見方式是「序列化」(Serialization)。

所謂序列化,就是將某物件或類別,編碼成可儲存、傳輸的格式。如此一來,資料便可以被編碼、儲存、傳輸與解碼,並可被不同的應用程式與平台使用。

序列化可分為兩種方式。一種是「二進位序列化」。不論是.NET的[Serializable] 屬性或實作的ISerializable介面,還是java.lang.Serializable,都支援將任何資料型別序列化的功能。然而壞消息是:兩大平台所序列化的格式不同,無法整合。

開發人員除自行建立可讓不同平台資料格式進行共通的序列子之外,第二種選擇就是如前幾期文章所提及-利用第三方廠商所開發的整合工具,如Intrinsyc Ja.NET,這類工具都包含支援不同平台資料交換的序列子。


第二種方式是「XML序列化」。利用XML進行資料交換,可享有支援多種異質平台的好處。自行解析XML是一個方法,但效率較低,也不易驗證符合企業商業邏輯的資料格式。

幸運的是,包括.NET與Java平台都已將XML的存取技術進一步得抽象化,同時可支援序列化。換句話說,開發人員可在Java平台上使用Mind Electri公司的XML序列子,或是利用.NET的System.Xml.Serialization.XmlSerializer類別。


開發工具如Visual Studio .NET,或是Mind Electric的Electric XML也多已支援可以視覺化方式建立XSD(XML Schema Definition),同時產生對應程式類別的功能。目前看來,排除第三協力廠商內建的序列機制之外,開發者自行建立XSD,再搭配XML序列化,將會是進行資料交換最容易的方式。

以下介紹是利用Web services進行資料交換的幾個進階範例,包括介面整合、資料整合、流程整合等應用。

介面整合

企 業主管或是知識工作者所注重的資訊,通常來自多種不同的企業解決方案,甚或不同的平台。將這些不同的資訊來源整合顯示是最簡單的方式。例如 Longhorn或是MSN Explorer便會在桌面右方提供「儀表板」,可透過Web services與其他相關技術同步顯示,提供包括氣象、交通狀況、即時傳訊的聯絡人清單、行事曆、股票等資訊。當然不只一般的Windows程式,從企 業入口網站(EIP)的發展也可看到類似的應用,透過Web Part的技術,將可利用XML或Web services整合不同來源的資訊介面。


資料整合

英瑞得(Gismosoft)所開發的商業智慧行動解決方案就是一種典型的資料整合應用。該公司計畫在Pocket PC中同時顯示營運資料與地理位置整合的介面,必須整合地圖系統與商業智慧資料倉儲中的資訊。

由於不可能要求客戶自行維護一套價值數百萬的地圖系統,客戶也不可能將業務資訊輕易的由開發廠商處理,同時間,又要兼顧行動裝置的應用。

最佳的方式就是將地圖系統、營運資料全部Web services化。前者位於開發商的伺服器上,後者位於客戶的伺服器。Pocket PC透過GPRS與Web services擷取雙邊資訊,再進行交叉比對,最後呈現的便是具備地理資訊的商業智慧系統。

單純的利用Web services將不同平台與企業解決方案裡的資料挖取出來,再整合顯示固然不錯,但是若能更進一步的將不同來源的資料進行交叉比對,將會產生許多機會與應用。如微軟,組織內部有一套供予銷售人員存取的Sales Portal,內建許多Web Part,其中就有個名為「News in My Accounts」(跟我客戶相關的新聞)。

該系統可在銷售人員存取Sales Portal時,自動辨識出銷售人員身份,同時利用Web services取出內部Siebel CRM系統裡的客戶清單,再透過Web services與MS Library(新聞系統)進行交叉比對,所得應用就是可大幅減少銷售人員閱讀新聞時間的「News in My Accounts」。

可以簡單的計算一下,如果全球每天有五千個銷售人員存取這系統,每天減少一小時的時間尋找與客戶相關的新聞,不只可以即時掌握客戶狀況,整體省下的時間成本也相當可觀。

流程整合

可分析的不只是現在與過去的資訊,整合不同資料來源之後的分析數據,甚至可以取得營運趨勢或是客戶行為預測的「領先指標」。一旦發現所要注意的現象與趨勢,最後甚至還可以觸發「行為」,也就是進行所謂的流程整合。

電子商務網站應用,甚可以將不同系統中的客戶資料(CRM)、銷售資料(ERP)與客戶瀏覽習性進行交叉比對,進而辨識出新的商業機會,同時開始運作流程,將相對應的促銷商品、不同網站或網友的評價、運費等資訊自動整合成為個人化促銷郵件遞送給予相關客戶。

利用Web services進行整合工作而後衍生的應用可能,充滿想像空間,就留待各位發展創意。

WEB SERVICE

webservice是一概念
socket是一種協議

socket用於底層的數據傳輸 2進制的數據傳輸
HTTP也是協議 傳輸的是HTML文本
SOAP是一種基於HTTP的協議 常用於實現webservice數據傳輸

WebService的優點在於:
1、跨平台
2、使用XML
3、可穿過防火牆
4、技術難度比CORBA小得多
5、低成本實現
6、也可用於C/S結構



缺點:
效率比CORBA、Socket低
數據量較大

webservice 就是個對外的接口,裡面有函數可供外部客戶調用(注意:裡面同樣有客戶不可調用的函數).假若我們是服務端,我們寫好了個webservice,然後把它給了客戶(同時我們給了他們調用規則),客戶就可以在從服務端獲取信息時處於一個相對透明的狀態.即是客戶不了解(也不需要)其過程,他們只獲取數據.

webservice傳遞的數據只能是序列化的數據,典型的就是xml數據,這裡我們也只討論xml數據的傳輸.

這個函數就是外部可調用的接口函數,對用戶來說相當於一個API.如果某用戶在引用了這個服務後,他調用HelloWorld()方法,他就將獲得"HelloWorld"這個返回值.
其實webservice並不是那麼的神秘,它也不過只是個接口,對我們而言,側重點依然是接口函數的編寫.下面,我將給出我們的例子所需要的接口函數.





網路上看到的問題,可以釐清一些觀念

Q: 用C#在本機做好的WEBSERVICE服務要佈屬到其他機器上運行,運行的機器一定要安裝.NET嗎?
把目錄COPY到SERVER後訪問該SERVICE.ASMX,只顯示<%@ WebService Language="c#" Codebehind="Service1.asmx.cs" Class="WebService1.Service1" %>,

A:必需安裝.net Framework。
Q: C#不是可以跨平台運行嗎? 為什麼就一定要裝.net Framework框架呢?
那用.net Framework框架寫的WEBSERVICE可以在LINUX上運行嗎?
A:編譯為DLL,就可以了
A: C#的跨平台,是建立在.net Framework的支持上的,沒有.net frameWork的支持,c#什麼也做不了
所以,C#寫的程序必須在安裝了.net framework上運行
由於現在還沒有在LINUX上的.net framework
所以,C#寫的程序,是不可能在LINUX下運行的
不過,Web Service是一項Web服務,並不是在你本機上運行
因此,你的Web Service配置在支持.net framework的機器上
在LINUX下調用這個web service是可以的

特殊需求,需要在linux下運行.NET的web服務,不知有什麼解決方案。 另外,IIS能用mono在linux下跑成功吗?另外,IIS能用mono在linux下跑成功嗎?

不知道你的Linux是哪個發行商的,
Ubuntu Linux上可安裝libapache2-mod-module
其實這就是Apache的MONO模塊,安裝了以後應該就可以跑ASP.NET了。
不過我沒試過在Linux上使用ASP.NET請你自己試試。

這兒是Mod_MONO的項目主頁:
http://www.mono-project.com/Mod_mono http://www.mono-project.com/Mod_mono
linux下有mono項目,可以在linux下跑.net,不管是c/s還是b/s,都可以簡單移植過去。
http://www.mono-project.com/Main_Page
这是官方网站,要想在linux下跑.net可以装这个。 這是官方網站,要想在linux下跑.net可以裝這個。

[RemObjects_SDK.rar] - 利用RemObjects SDK创建的客户和服务器应用程序可以容易的通过网络相互通讯。 RemObjects SDK可提供.NET和Delphi版本,带来一个创建分布式应用的快速方法,利用Service Builder简单的建模您的服务器接口,Service Tester用于性能和稳定性测试,并可

在linux下用C或C++访问Web Service的资料
gSOAP: Generator Tools for Coding SOAP/XML Web Services in C and C++


2 月 11 日「微軟線上專家對談」主題: 以 Web services 實現應用程式整合

开发,配置,调用-三步走构建简单的asp.net webservice(C#)-适合初学者阅读

據說delphi可以將Web Service編譯成dll,放在IIS下可運行,是不是這樣?

Socket提供了进程通信的端点,最重要的是,socket 是面向客户/服务器模型而设计的,针对客户和服务器程序提供不同的socket 系统调用。Socket 接口是访问 Internet 使用得最广泛的方法。
Remoting是一种分布式处理方式。在Remoting中是通过通道(channel)来实现两个应用程序域之间对象的通信的。
Web services是建立可互操作的分布式应用程序的新平台。Web service 从表面上看,就是一个应用程序,它向外界暴露出一个能够通过Web进行调用的API。这就是说,你能够用编程的方法通过Web来调用这个应用程序。
根据微软官方的解释,WCF(之前的版本名为“Indigo”)是使用托管代码建立和运行面向服务(Service Oriented)应用程序的统一框架。它使得开发者能够建立一个跨平台的安全、可信赖、事务性的解决方案,且能与已有系统兼容协作。WCF是微软分布式 应用程序开发的集大成者,它整合了.Net平台下所有的和分布式系统有关的技术,例如.Net Remoting、ASMX、WSE和MSMQ。以通信(Communiation)范围而论,它可以跨进程、跨机器、跨子网、企业网乃至于 Internet;以宿主程序而论,可以以ASP.NET,EXE,WPF,Windows Forms,NT Service,COM+作为宿主(Host)。WCF可以支持的协议包括TCP,HTTP,跨进程以及自定义,安全模式则包括SAML, Kerberos,X509,用户/密码,自定义等多种标准与模式。也就是说,在WCF框架下,开发基于SOA的分布式系统变得容易了,微软将所有与此相 关的技术要素都包含在内,掌握了WCF,就相当于掌握了叩开SOA大门的钥匙.WCF完全可以看作是ASMX,.Net Remoting,Enterprise Service,WSE,MSMQ等技术的并集。

Socket,Remoting,Enterprise Services,Web Service,WCF
-------这些都不是通信技术...

现在通信技术基本上只用TCP/IP...


http://www.ad0.cn/netfetch/read.php/341.htm

Socket模拟Http协议,读取http header,根据content-length的值,读取Http body

[心得]在php中使用Web Service
[心得]使用php提供Web service

典型的Web Service结构(转)

是否可以認為webservice是通過socket實現的?
webservice的實現在socket層面上的解釋是:
1、作為客戶端,調用webservice服務即是向socket服務端(80端口)發送一定格式(xml格式的?)的字符串,然後在本次socket連接中接收服務端返回的字符串?
2、作為服務端,打開socket服務,監聽80端口,接收客戶端發來的字符串,然後向該連接返回字符串?

網友回复:沒有關係! 你那是强行将两个东西扯在一起!你那是強行將兩個東西扯在一起! 網友回复:看這個你就明白了

webservice用soap協議,soap協議只是用來封裝消息用的。 封装后的消息你可以通过各种已有的协议来传输,比如http,tcp/ip,smtp,等等封裝後的消息你可以通過各種已有的協議來傳輸,比如http,tcp/ip,smtp,等等
http://topic.csdn.net/t/20031123/15/2485964.html http://topic.csdn.net/t/20031123/15/2485964.html

網友回复:要一層一層分析它的本質,而不是只看表面現象網友回复:socket是通訊協議,web service是數據協議你可以坐火車出門,但是你不能說你是鐵路實現的網友回复:剛才學習了http://www.w3school.com.cn /webservices/ws_use.asp,截下了“華氏、攝氏溫度轉換”的通訊報文。分析了下, 我填了攝氏轉華氏,500攝氏度,結果是933.8華氏度。下面是交互的數據。

發送:
POST http://www.w3schools.com/webservices/tempconvert.asmx/CelsiusToFahrenheit
HTTP/1.0..Accept: */*..Referer: http://www.w3school.com.cn/webservices/ws_use.asp. .Accept-Language: zh-cn..Content-Type: application/x-www-form-urlencoded..UA-CPU: x86..Proxy-Connection: Keep-Alive..User-Agent: Mozilla/4.0 (compatible ; MSIE 7.0; Windows NT 5.1; WPS; Maxthon; CIBA)..Pragma: no-cache..Content-Length: 11..Host: www.w3schools.com..Cookie: ASPSESSIONIDACCRBRCA=GMAEHIABLCIJEKEMDDKAPKAM;
__utma=119627022.1292411626.1210746833.1210746833 .1210749095.2;
__utmc=119627022;
__utmz=119627022.1210746833.1.1.utmcsr=(direct) &brvbarutmccn=(direct) &brvbarutmcmd=(none)....Celsius=501


接收:
HTTP/1.1 200 OK..Via: 1.1 XXXXXXXXXXX..Connection: Keep-Alive..Proxy-Connection: Keep-Alive..Content-Length: 90..Date: Wed, 14 May 2008 08:07:23 GMT. .Content-Type: text/xml;
charset=utf-8..Server: Microsoft-IIS/6.0..MicrosoftOfficeWebServer: 5.0_Pub..X-Powered-By: ASP.NET..X-AspNet-Version: 2.0. 50727..Cache-Control: private, max-age=0.... <?xml version="1.0" encoding="utf-8"?>.. <string xmlns="http://tempuri.org/ ">933.8 </string>


就這個溫度轉換的例子而言,可以看出調用webservice服務並不是“xml”格式化的字符串,服務端返回的包含有“xml”化的數據。
這些數據理論上通過socket是可以發送和接收的,但實際上自己生成第一次發送的內容基本上是不可能的,對於接收的內容倒是可以按照要害字進行篩選。

首先webservice可以通過http實現,也可以通過其他很多種協議實現,socket比http更底層,就像人和大便的關係,呵呵。
webservice假如用http協議來實現的話,那在socket層面上的解釋是:
客戶端調用 webservice服務,即是向socket服務端(80端口?)發送一定格式(按照http協議打包?針對501,就會有第一次的數據那麼多,想要搞明白,估計還得去研究http協議,對我是不可能的任務了)的字符串,然後在本次socket連接中接收服務端返回的字符串(字符串是將 webservice處理產生的的實際內容“933.8”經過soap協議打包,即按照xml格式處理,也就是標紅的部分,然後再經http協議處理(又包了一層網絡通訊需要的內容,不過這和soap打包的性質不一樣,soap是在數據內容層面上加上xml的格式),形成最終收到內容)
網友回复:更正下,上面應該是:

接收:
HTTP/1.1 200 OK..Via: 1.1 XXXXXXXXXXX..Connection: Keep-Alive..Proxy-Connection: Keep-Alive..Content-Length: 90..Date: Wed, 14 May 2008 08:07:23 GMT. .Content-Type: text/xml; charset=utf-8..Server: Microsoft-IIS/6.0..MicrosoftOfficeWebServer: 5.0_Pub..X-Powered-By: ASP.NET..X-AspNet-Version: 2.0. 50727..Cache-Control: private, max-age=0.... <?xml version="1.0" encoding="utf-8"?>.. <string xmlns="http://tempuri.org/ ">933.8 </string>


.net以soap调用php的WebService

2009年4月15日 星期三

javascript

http://www.kuqin.com/language/20081029/24922.html#event-handlers
Yahoo!网站性能最佳体验的34条黄金守则——内容
網站速度提升的34種方法 Yahoo開發團隊推薦

http://myshare.url.com.tw/tag/javascript
提高:如何优化JavaScript脚本的性能
連線速度

如何提高頁面響應速度


JavaScript的陷阱

JS文件加载速度慢,让javascript加载速度显著提高


JavaScript是怎樣讓互聯網變慢的
本貼轉載至:http://mygaf.jack-ck.com/viewthread.php?tid=93128



http://www.goodman-lai.idv.tw/2008/06/firefox-3.html

smartclient
http://www.microsoft.com/taiwan/msdn/columns/mvp/200506_smartclient.htm

http://www.google.com.tw/search?q=javascript+%E5%BF%AB%E5%8F%96&hl=zh-TW&rlz=1B3GGGL_zh-TWTW297TW297&start=10&sa=N

http://zh.wikipedia.org/wiki/JavaScript

http://funp.com/push/?tag=javascript&hot&stars=1

http://blog.miniasp.com/post/2008/07/quipt-Client-side-library-caching-with-JavaScript.aspx

http://funp.com/push/?tag=javascript&hot&stars=1


http://bioinformatics.iis.sinica.edu.tw/GANA/_vti_bin/_vti_adm/help/1028/Publish/wsggloss.htm

http://died.tw/2009/04/chrome-experiments-google.html

http://lookmine.twbbs.org/2009/04/jquery-javascript.html

http://blog.riaproject.com/ajax/1067.html

使用即時追蹤 記憶體使用量
FF 185,000K 每抓一次資料CPU 20 觸發事件 189,000K CPU+5
IE 90,000K 每抓一次資料CPU 09 觸發事件 99,000K CPU+15 4-16記

技術文章:學習javascript必看

使用物件導向技術來建立進階 Web 應用程式
本文探討:
  • JavaScript 為一原型語言
  • 使用 JavaScript 設計物件導向程式
  • JavaScript 的程式設計技巧
  • JavaScript 的未來

參考

AJAJ, PHP JSON Javascript

javascript裡物件還有陣列(js的陣列其實也是物件)的一種簡略表示方法->JSON

2009年4月13日 星期一

暫存-javascript記憶體管理

開完會~對記憶體部分有了一點消息
在開會時分別用 FF 與 IE demo系統 發現
兩者CPU都衝到50% 記憶體 IE:130,000 FF:55,000
執行時 IE明顯被打垮了

詢問後~
萍華兄:FF 原本就對javascript支援度高,IE..不適合跑過多javascript ,建議用PHP ,但..GMAP 用javascript寫的,也沒辦法改,試試刪除物件吧~ 怎麼刪 .. 我也不清楚 >< 現在找到的資料.. Java Script∕節省記憶體 for IE6.0
太多的程式碼同時載入會浪費記憶體嗎?
其實在<script language="javascript">...</script>內的程式碼,執行過之後便沒用了,但內裏的程式碼卻保留在系統之中,這樣實在太浪 費記憶體了。本單元的程式碼可令網頁載入後消掉一些沒用的程式敘述,可讓網頁走得更暢快,非常適合一些大量使用 JavaScript 的網頁
輕量級JAVASCRIPT編輯器 : 1st JavaScript Editor

深入研究Google瀏覽器
有幾張漂亮的數據圖
CSS測試是用http://www.howtocreate.co.uk/csstest.html的測試網頁。
JavaScript測試是用Celtic Kane所寫的測試程式(http://celtickane.com/webdesign/jsspeed2007.php)。
記憶體測試時,先開啟十個資料量很大的網頁,再用Google Chrome的about:memory指令查看記憶體用量。

AJAX七項原罪

新增程式方法
JavaScript Memoization

參考
Ajax記憶體無法釋放

Google新開發的原生用戶端(Native Client)軟體--這項研究計畫宣稱,可讓架構在網路上的
軟體跑起來幾乎像在電腦上執行一樣快

javascript引擎 Chrome的V8和Mozilla的TraceMonkey
SunSpider 是一個javascript測試網站

KB-Javascript Anonymous Function Memory Issue

探討 程式寫法
http://forum.moztw.org/viewtopic.php?t=18498
http://blog.xuite.net/vexed/tech/22697513

http://fillano.blog.ithome.com.tw/post/257/11011
http://o-asp.com/Art/Show.asp?id=3945 要註冊

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
4/14 撿到寶了

Reducing Browser Memory Leaks

The Google Maps API encourages the use of function closures, and the API event handling system GEvent attaches events to DOM nodes in such a way that almost inevitably causes some browsers to leak memory, particularly Internet Explorer. Version 2 of the Maps API introduces a new method, GUnload(), that will remove most of the circular references that cause these leaks. You should call GUnload() in the onunload event of your page to reduce the potential that your application leaks memory:

<body onunload="GUnload()">

Using this function has virtually eliminated Internet Explorer memory leaks in Google Maps, though you should test for memory leaks on your own site using tools like Drip if you are noticing memory consumption problems.

看樣子要常逛GOOGLE MAP API

2009年4月11日 星期六

連線穩定度 省電能力

1.連線穩定度:

描述:
  • 回家要牽車時,跑出:
無法讀取資料連線,按了確定 又繼續跑

解決方法 : catch
{
;
}
  • 進入室內一陣子:
也會跳出 忘了
NullReferenceException 於WSuserV32.Form1.UpdateData() at TASK.Invoke()
  • 一直收不到server回應:

連線逾時 time out

解決方法,try 會逾時的地方,catch exception 狀態若為逾時 則睡眠增加。


2.省電能力:

不同交通模式:
  1. 步行8秒
  2. 機車4秒
  3. 火車4秒
  4. 特殊
靜止
可見衛星數:0 表是在室內!!
PDOP:25.5 表是什麼呢?

議題~~~~~~~~~~~
在室內: 要分辨衛星數 有可見衛星數 、 鎖定衛星數

目前在房間內PDA顯示
0/1(0)
但經緯度有值,HDOP VDOP PDOP 皆為25.5

回家後,手機還有電,程式與GPS Speed Sentry持續開啟,但關閉螢幕
出門前打開螢幕,GPS Speed Sentry 顯示無可用NMEA值 是否重新連結。
此時點選是~查看衛星分布,在3D圖式上可見完整衛星分布,但都無鎖定。
程式開啟,繼續傳送,往學校方向走去,
程式GPS資訊顯示~衛星數0/1(0) 但經緯度友值。
到學校後發現,地圖一值標示在家裡。
所以可以推斷,若GPS 衛星數0,經緯度值並不會更新,表靜止!4-16記

2009年4月10日 星期五

什麼是 JavaScript

JavaScript

是一種直譯式語言,它可以被嵌入 HTML 的檔之中。可以用來處理一些畫面的特效,例如變換圖片、彈出式的選單、電子時鐘、拼圖遊戲等。不同於伺服器端腳本語言,例如PHPASP,JavaScript是client端腳本語言,其原始碼在發往客戶端執行之前不需經過編譯,而是將文字格式的字元代碼發送給瀏覽器由瀏覽器解釋執行,也就是說JavaScript是在用戶的瀏覽器上運行,不需要伺服器的支援而可以獨立運行隨著網頁下載到你的電腦後,便會自動執行這些程式來做出特效,通過 JavaScript 可以做到回應用戶的需求事件(如表單的輸入),這樣當一位使用者輸入一項資訊時,它不需要通過網路傳送到伺服器端進行處理再傳回來的過程,而可以直接在用戶端進行事件的處理。但因為各家瀏覽器的不同,寫程式時要注意到相容性的問題,比方說獨大的IE就單純只參考W3C的規範,自訂自己的標準,寫程式時要特別注意~


優點是:

可以減少對伺服器的負擔。而隨著伺服器的強壯,雖然現在的程式員更喜歡運行於伺服端的腳本以保證安全,但JavaScript仍然以其跨平台、容易上手等優勢大行其道。


缺點是:

解釋語言的弱點是安全性較差,而且在JavaScript中,如果一條執行不了,那麼下面的語言也無法執行。而且由於每次重新載入都會重新解譯,載入後,有些代碼會延遲至運行時才解譯,甚至會多次解譯,所以速度較慢。



Javascript與Java

  JavaScript Java 很相似,但它們卻是完全不同的語言! Java 是由 Sun Microsystem 公司開發的一種面向物件的程式設計語言,類似於C++,它需要多種編譯器和支援檔才能運行;但於 C++ 不同的是,Java 可以獨立於任何操作平臺,因此它就在當今 Internet 網路各種操作平臺的基礎上得以迅速發展。但它是一種比 JavaScript 複雜得多的標準程式語言。JavaScript 則是相對容易瞭解的函數式語言,JavaScript承襲了Java與Perl的語法JavaScript 撰寫人員可以不那麼注重編程技巧,例如宣告所有的變數、類和方法,您也不必關心諸如 public private protected 之類的費解的東西;更重要的是,它只能存在於一個 HTML Script中,而且只有在裝入一個相容的瀏覽器時才能運行,所以許多 Java 的特性在 JavaScript 中並不支持。現在,JavaScript 完全相容於 ECMA-262 標準(歐洲電腦製造協會的 JavaScript 標準);如需瞭解的更多資訊,請參閱 Netscape 的有關 Netscape JavaScript 的介紹(微軟也有一個 JavaScript 的變種,稱之為 JScript)。


因 為Javascript與Java都可以在網頁上做出動態效果,而且JavaScript還可以控制網頁上的Java Applet,所以可以互相搭配。此外,他們也都能配合伺服端程式,做出一些特別的東西;例如Google Map就利用了JavaScript和後端程式的配合,讓地圖上每一格的圖片可以在使用者移動到看到它時才開始載入,以節省流量;此外,Google Mail和Yahoo!Mail的收件者裡打了一個字,通訊錄中以那個字為開頭的帳號就會出現在下方讓你選,這也是一樣的應用。這種技術,稱為AJAX


JavaScript直譯式語言

編譯語言例 如Java。Java的源代碼在傳遞到客戶端執行之前,必須經過編譯,因而客戶端上必須具有相應平台上的模擬器或解釋器,它可以通過編譯器或解釋器實現 獨立於某個特定的平台編譯代碼的束縛。但是它必須在服務器端進行編譯,這樣就拖延了時間。但因為已經封裝,所以能保證安全性。

因為程式需要編譯後才能用,故就會牽涉到編譯器、連結器、函式庫 .... 等等各式各樣的跨平台問題,等著我們去傷腦筋。

然而,另外有一類的語言所寫出的程式是不需要「編譯」的,稱之為「直譯式語言」,這類語言只需要一個直譯器 (interpreter) 來做程式碼的翻譯,就可以完成我們想做的工作。故使用直譯式語言顯然就單純許多,比較沒有跨平台方面的問題。


語法特色~
JavaScript 是一種動態資料類型語言,也就是說,當聲明一個變數時不必指定資料的類型,當程式執行時它會自動將其轉換為所需要的類型。而當在一個運算式中將一個字串類型的值和數值型的值進行“+”運算時,JavaScript 會將數值轉換為字串

什麼是PHP

PHPHypertext Preprocessor)是一種伺服端(server-side),跨平台(cross-platform),簡單易學的HTML嵌入式非編譯性語言(HTML embedded scripting language)。

這種在電腦上執行的腳本語言(指令碼語言),主要是用途在於處理動態網頁,也包含了命令列執行介面(command line interface),或者產生圖形使用者介面(GUI)程式。

PHP 目前被廣泛的應用,特別是在伺服器端的網頁程式開發方面。一般來說 PHP 大多執行在網頁伺服器端上,透過執行PHP程式碼來產生使用者瀏覽的網頁提供瀏覽器讀取。PHP 幾乎可以在不同種的伺服器、任何的作業系統、平台上執行,也可以和許多資料庫系統結合而且使用 PHP 完全是免費的。官方組織 PHP Group 提供了完整的程式原始碼,允許使用者修改、編譯、擴充來使用。根據2007年4月的統計資料,PHP 已經被安裝在超過2000萬個網站和100萬台伺服器上。

目前PHP5包含了許多新特色,像是強化的物件導向功能、引入PDO(PHP Data Objects,一個存取資料庫的延伸函式庫)、以及許多效能上的增強



什麼是HTML-標記語言

超文件標示語言(HyperText Markup Language),簡稱為HTML
是為了建置網頁並可在其他網頁瀏覽器中看到的信息而設計的一種標示語言標示語言
HTML被用來結構化欲傳達給瀏覽者的信息——例如標題、段落和列表等等,也可用來在一定程度上描述文檔的外觀和語義。由蒂姆·伯納斯-李給出原始定義,由IETF進行進一步發展,後來成為國際標準,現由全球資訊網聯盟W3C)維護。

包含HTML內容的文件最常用的副檔名是.html,但是像DOS這樣的舊作業系統限制副檔名為最多3個字元,所以.htm副檔名也被使用。雖然現在使用的比較少一些了,但是.htm副檔名仍舊普遍被支持。網頁編輯者可以用任何文字編輯器或所見即所得的HTML編輯器來編輯HTML文件。

早期的HTML語法被定義成較鬆散的規則,以有助於不熟悉網路出版的人採用。網頁瀏覽器接受了這個現實,並且可以顯示語法不嚴格的網頁。隨著時間的流逝,官方標準漸漸趨於嚴格的語法,但是瀏覽器繼續顯示一些遠稱不上合乎標準的HTML。使用XML的嚴格規則的XHTML(可擴展超文件標示語言)是W3C計劃中的HTML的接替者。雖然很多人認為它已經成為當前的HTML標準,但是它實際上是一個獨立的、和HTML平行發展的標準。W3C目前的建議是使用XHTML 1.1、 XHTML 1.0或者HTML 4.01進行網路出版。


標記語言
標記語言,也稱置標語言是一種將文本(Text)以及文本相關的其他信息結合起來,展現出關於文檔結構和數據處理細節的電腦文字編碼。與文本相關的其他信息(包括例如文本的結構和表示信息等)與原來的文本結合在一起,但是使用標記(markup)進行標識。超文本標記語言HTML)和可擴展標記語言eXtensible Markup LanguageXML)。標記語言廣泛應用於網頁網路應用程式。標記最早用於出版業,是作者、編輯以及出版商之間用於描述出版作品的排版格式所使用的。

與標記語言相反的是程式設計語言
編程語言programming language),又稱程式設計語言program design language,簡稱PDL),是一組用來定義電腦程式的語法規則。它是一種被標準化的交流技巧,用來向電腦發出指令。一種電腦語言讓程式設計師能夠準確地定義電腦所需要使用的資料,並精確地定義在不同情況下所應當採取的行動。

編程語言原本是被設計成專門使用在電腦上的,但它們也可以用來定義演算法或者資料結構。正是因為如此,程式設計師才會試圖使程式代碼更容易閱讀。

編程語言往往使程式設計師能夠比使用機器語言更準確地表達他們所想表達的目的。對那些從事電腦科學的人來說,懂得程式語言是十分重要的,因為在當今所有的計算都需要程式語言才能完成。

暫存

LBS :
即時行動追蹤組成
架構圖

定位方式
GPS , CELL-ID , WIFI,RFID,Blooth tooth



gps 歷史,規格,準確度,訊號格式

連結技術 :
webservice優 缺點 (socket)
SOAP

WEB2.0技術
什麼是HTML
什麼是XML
什麼是JAVASCRIPT
什麼是PHP

AJAX
XMLHTTP




開發工具

SDK:
windows mobile6.0
pocket pc
win CE

開發環境 .net framwork
IDE :visual studio 2005

web server : micorsoft IIS , apachy
database : mysql,mssql
google map api

skype api


2009年4月9日 星期四

見鬼了 parseInt('08')

今天月曆顯示 8號 9號 應該 要出現連結變色才對~
月曆語法應該沒有問題啊~ 抓蟲結果.. 無解~?!!

alert("parseInt('10') = "+parseInt('10') + " parseInt('09') = "+parseInt('09')+"  parseInt('07') = "+parseInt('07')+"  parseInt('03') = "+parseInt('03'));

alert出來的結果是:
parseInt('10') = 10 parseInt('09') = 0 parseInt('07') = 7 parseInt('03') = 3
怎麼會這樣~

----------------------------------------------------------------------------------
原來啊~~

parseInt
語法
parseInt(numString, [radix])

描述: 轉換型別為string的數字,變成型別為number的數字
參數 :
  • radix為 option,表示"進制";
  • numString有幾個可能性:
  1. 前面部分是'0x' 的字串會被當作16進制,
  2. 如果前面是'0' 的字串則被當作8進制。
  3. 所有其它字符串都被當作是10進制。
  4. 如果前面是無法解析的數字,比如XYZ ,則會顯示 'NaN'。
所以.. 08 09 被當作8進制~才會映出 '0' ~ 怪怪
因此~只要parseInt(numString, 10) 就好了~~

2009年4月6日 星期一

IE快取問題

再使用FF都沒問題的,但IE問題卻發生了~
載入的檔案沒有更新,在HTML裡已經宣告過標頭不快取了~但還是硬生生被鎖住,
按Ctrl+ F5,怪哉~發現居然還是讀到舊檔...
想想...我的程式是透過連結SERVER上的php檔來抓資料,所以就只要改PHP檔的標頭就好了吧~果然~ 一試OK~
如果有欲到IE快取問題,可以根據不同的需求,來做避免快取的動作吧~

以下是在不同檔案的避免快取辦法~

可以在HTML裡


<META HTTP-EQUIV="CACHE-CONTROL" CONTENT="NO-CACHE">
<META HTTP-EQUIV="EXPIRES" CONTENT="Mon, 22 Jul 2002 11:12:01 GMT">
<META HTTP-EQUIV="PRAGMA" CONTENT="NO-CACHE">


在JSP裡:

要連結的網址後面加參數,名稱不一樣,瀏覽器就會被騙過去再載一次
window.location.href='linkpage.jsp?t='+new Date().getTime();


在PHP裡

程式碼最前面加上:
header("Cache-Control: no-store, no-cache, must-revalidate");
header("Cache-Control: post-check=0, pre-check=0", false);


在CSS連結~
簡易克服 CSS 被瀏覽器快取(Cache)的問題

參考 JSP: 避免用戶端快取網頁內容的幾種方法比較 裡面有幾個方法的測試

gdownload函式

寫網頁時,動態載入的函式使用的是google API,要注意,因為是非同步的方式,所以要處理資料的程式,應該要確保為request後所得到的資料的後面,才不會發生,要把資料秀出來時卻說資料未定義~

http://coolersport.info/csite/index.php?a=CDownloadUrl,這是人家寫好的,具有簡易判斷瀏覽器與XML識別,可以看做是gdownload()拆解~

暫放

簡易CSS語法教學,不含排版部分。新手適用!
CSS 語法教學

正規表達式,PHP繼承*NIX的一貫傳統,完全支援正規表達式的處理,split("-",$xx)函式是其中一例
PHP程式設計講義區

參考 Neo 's Blog,下面這篇提供了好幾個日期選擇器..
[Javascript] 免費、直覺的日期選擇元件

PHP與MySQL實務運用

新娘秘書專區 這個要講一下,這是個人Blog,重點不是在新娘..是在右下角的月曆,樣式蠻喜歡的~看了一下源碼是yahoo的API ..

問題是這樣的~
網頁一載入,就要有個日曆秀出哪幾天有資訊,點擊有資訊的那幾天會再秀出所有的時間點,
方法是用資料庫搜尋的方式, 先判斷當月哪幾天有資訊,if有,變更日期為可連結,點擊連結,責執行非同步下載當天資訊,再載入下拉式選單。

首先,google了關鍵字月曆、行事曆,但沒找到適合的,幾乎都是找到修初登入網頁時的當月月曆,後來看到"日期選擇器",是用來讓使用者方便點擊來輸入生日等日期資訊用的,還是找不到適合的,
而這些都是人家做好的,有的是直接在網頁裡嵌入這些原碼或者是引用JS檔,但如要與資料庫連線,應該就不提供了,原本想偷懶的,但看到程式碼..好多啊~ 所以看了這麼久,只好自己寫了,
從最簡單的NVU這個IDE下手,NVU有提供一個月曆元件,也是只有提供最簡單的秀出當天日期,

作修改的話,首先要產生<< >> 兩個連結, 就是可以點擊上一個月份 下一個月分,
第二步,連結資料庫秀出哪幾天有資訊
第三部,寫javascript 動態載入所點擊之當天日期內所有時間點資訊

而月曆寫法,應該都大同小異,
用date()得到本機日期時間,判斷是否為閏年,計算本月第1號是在星期幾,在之前的表格都設為空,判斷月曆的列數,印出整個月~

比較要注意的就是,日期函式中,getMonth()函式所得的月份要+1 數字才對。

javascript 日期函式
Javascript实例教程(15) 日期函数



PHP程式設計講義區


以下是時間選擇器~

[Javascript]Time Picker視覺化的時間選擇器



http://jsgears.com/thread-134-1-1.html

http://www.study-area.org/coobila/tutorial_468.html2

http://blog.darkthread.net/blogs/darkthreadtw/archive/2007/09/04/code-javascript-time-picker.aspx

2009年4月1日 星期三

window.jstiming is undefined 網站又掛了~google map?

剛過12點~
刷新地圖就不見了..
FIREFOX 錯誤主控台顯示 window.jstiming is undefined

..怎麼會在這時候發生問題~

google唯一找到的文章... 居然也沒有回覆..

這是錯誤代碼行
s.src=[c?c:"http://csi.gstatic.com/csi","?v=3","&s="+(window.jstiming.sn?window.jstiming.sn:"mfeundefined")+"&action=",a.name,k.length?"&it="+k.join(",")+d:d,"&rt=",i.join(",")].join("");s=j}};var Wr=/[~.,?&_]/g,Xr=f;zk.f=function(a,b,c){this.qm=a.replace(Wr,"-");this.Eg=c||new window.jstiming.Timer(b);window.jstiming.setTimerName(this.Eg,this.qm);this.Jq=1;this.tD=0;this.uf={};this.Jl={};this.Um={};this.iq=""};


都快放棄了才發現...解決辦法~
"http://maps.google.com/maps?file=api&v=2.x&key=abcdef"

改成
"http://maps.google.com/maps?file=api&v=2&key=abcdef"

就如同連結裡說的~2.X版 不穩定~改回第2版即可