值得留意的還有和css一樣的批量選擇語法$$(),
傳統的基於url的ajax函式簡單實用。
newajax.updater('bookdiv',
"foo
.jsp");
另有可定時執行ajax的periodicalupdater。
form.serialize 將form中所有input物件的值轉化為乙個url string,方便把form轉為用 url get方式的ajax提交,最經典的用ajax提交form的例子:
<
form action="
/action/here
"method="
post
"onsubmi="
new ajax.updater('div_to_be_updated', '/action/here', );
return false;
">
另外,form.focusfirstelement , form.getinputs等函式也很實用
除了後述的observe模式外,還有下列保證相容ie和ff的事件函式:
1.event.element(event),找出觸發事件的element.
2.event.findelement(event,tagname),搜尋dom tree裡事件的響應鏈裡的第乙個符合tagname的element.
3.pointerx(event),pointery(event)等.
還定義了一些標準keycode,見:
1.迴圈函式
elements.each(
function
(element));
2.不定引數
newajax.updater('mydiv', '
/foo
/bar', );
observe模式,就是連線仍然以形式編寫,用observe為其加入onclick事件的偵聽。 這樣,當搜尋引擎訪問時,就會訪問傳統的url;而使用者使用ie訪問時,就會被observe轉為使用onclick事件的ajax效果。
見springside中的/home/index.jsp 圖書詳情察看--通過selector查詢需要處理的鏈結(a),迴圈為每個鏈結新增觀察者,為click事件,新增handle函式。
$$('div#left_books
*a[href]').each(
function
(element));
function
handlercilckevent(event)
script.aculo.us語法超簡潔的builder, 相比之下w3c的dom builder語法簡直是噩夢。html片斷不複雜時如果用jstemplate有點大炮打蚊子,用script.aculo.us的builder就夠了。
builder很有ruby的風格,請看下面一句 :
foo=
builder.node('a', ,categorys[i].name)
第1個引數是element型別,第2個是可選的attribbute,第3個是節點內的子節點。
如果要換成w3c的dom函式寫法,善哉善哉。
div
=builder.node('div',,[
builder.node('a', , categorys[i].name) ]);
當然了,還是沒有js template清晰,所以builder只作為html片斷非常短時使用。
AJAX應用技巧
xmlhttprequest瀏覽器快取問題 在firefox瀏覽器中,xmlhttprequest物件相相同的url傳送請求時,瀏覽器每次都會向伺服器傳送請求,不存在快取的問題,而ie瀏覽器如果url請求位址相同時,瀏覽器會讀取其快取中的內容進行響應,而不再向伺服器傳送請求,解決瀏覽器快取的辦法是 ...
Ajax開發經驗
1 ajax還是ajah ajax的很多經典應用其實都是利用xmlhttp空間訪問後台程式,後台程式返回指令碼用eval 或者返回簡單資料的方式來開發。這樣的開發模式的好 處是設計簡單輕巧,對熟悉dhtml的開發者來說上手會比較塊,跨瀏覽器問題也容易解決,做簡單的應用也夠用。gmail,google...
Ajax開發經驗
1 ajax還是ajah ajax的很多經典應用其實都是利用xmlhttp空間訪問後台程式,後台程式返回指令碼用eval 或者返回簡單資料的方式來開發。這樣的開發模式的好處是設計簡單輕巧,對熟悉dhtml的開發者來說上手會比較塊,跨瀏覽器問題也容易解決,做簡單的應用也夠用。gmail,google ...