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版即可