[筆記]ajax技術(概念和後端程式)

最近在研究ajax
快被它搞煩了

一長串的java script
還有瀏覽器的支援度不同
一堆看不懂的語法

從wiki的定義
AJAX全稱為「Asynchronous JavaScript and XML」(異步JavaScript和XML)
,是一種創建交互式網頁應用的網頁開發技術。根據Ajax提出者Jesse James Garrett
—————————————————–

ajax的原理…我知道阿
就是用java script,送出一堆資料給
網頁後端(php asp jsp…等)
再利用後端,寫出一些東西給java script
去分析,顯示

原理很簡單阿

但一直找不到關鍵的東西
1. 送到網頁後端,哪個檔
2. 送了甚麼資料
3. 把資料用瀏覽器手動帶進去,寫了甚麼東西

因為範例的檔案是php
但我用asp…Orz

搞了許久
大概知道他在幹嘛

也依樣畫葫蘆,改了東西出來
(重寫後端的程式,改成ASP版的)

但是….中文亂碼
爬文…叫你設定編碼
除了上面的
<%@ LANGUAGE=VBScript CodePage=950%>
再加入
<%Response.Charset="BIG5"%>
 ——————————————– 

(unicode的話,請把檔案重存成unicode)
改成
<@ LANGUAGE=VBScript CodePage=65001%>

Response.Charset="Unicode"

要不然會錯誤

——————————————– 
java script分析資料
還沒研究….
先照舊
有些範例是用特定字元再spilt
有些範例是整理文字輸出的方式
java script處理,直接變成object以供顯示
大概是這樣

然後就有簡單版的ajax了

我是拿自動完成文字框的範例(Dhtml Autocomplete)
來自http://www.ajaxdaddy.com/

程式設計真的是學海無涯阿

會看ASP原始碼的人
我附上我範例重寫ASP版的後端程式
讓你比較清楚他在幹嘛
資料庫的部分…
請自行到create-countries.php拿取(應該不難認出)
整理成二個欄位id和countryName
id為自動編號
存成country資料表,country.mdb

就可以玩這個範例

 —-ajax-list-countries.asp———————————– —–

<%@ LANGUAGE=VBScript CodePage=950%>
<%
Response.Buffer=True
Dim conn,db,prefix,timeset,connstr,time1,onlinetime,rs
prefix="zym"
Server.ScriptTimeout=40
timeset=0 ‘時區相對東八區(北京時間)
onlinetime=1  ‘保存用戶在線的時間(小時)。
db="country.mdb"
set conn=Server.CreateObject("ADODB.Connection")
connstr="Provider=Microsoft.Jet.OLEDB.4.0;Data Source="&server.mappath(db)
conn.open connstr
Sub closedb
conn.close
Set conn = nothing
End Sub

getCountriesByLetters=request("getCountriesByLetters")
letters=request.querystring("letters")
if getCountriesByLetters=1 then
set rs1=server.createobject("adodb.recordset")
sql1="select * from [country]  where countryName like ‘"&letters&"%’"
Response.Charset="BIG5"
rs1.open sql1,conn,1,2
if rs1.eof then
    response.write "查無資料!"
    response.end
end if
while not rs1.eof
Response.write rs1("id")&"###"&rs1("countryName")&"|"
rs1.movenext
wend

end if
%>
————————————————————————-

從程式不難看出
當你從瀏覽器尾端放入
……/ajax-list-countries.asp?getCountriesByLetters=1&letters=al

————————————————————————-
就會顯示類似以下的東西

2###Albania|3###Algeria|
————————————————————————-
(後來發現…firefox不支援此範例…Orz)
我再看看解決方法吧