
原型 - AJAX 更新器() 方法
這個 AJAX Ajax.Updater 執行 AJAX 請求並根據響應文字更新容器的內容。
Ajax.Updater 是 Ajax.Request 的一個特例。
語法
new Ajax.Updater(container, url[, options]);
返回值
一個 AJAX Ajax.Updater 物件。
Ajax.Updater 包含所有 常用選項 和回撥函式,以及 Ajax.Updater(). 新增的那些。
此方法還有兩個特定選項:
選項 | 描述 |
---|---|
evalScripts | 預設值為 false. 這決定了是否評估響應文字中的 <script> 元素。 |
insertion | 預設值為 None. 預設情況下,使用 Element.update,它用響應文字替換容器的全部內容。您可能希望改為在現有內容周圍插入響應文字。 |
在下面的示例中,我們假設透過 AJAX 建立新專案會返回僅表示新專案的 XHTML 片段,我們需要將其新增到我們的列表容器中,但在其現有內容的底部。如下所示:
new Ajax.Updater('items', '/items', { parameters: { text: $F('text') }, insertion: Insertion.Bottom });
示例
以下示例演示了使用 Ajax.Updater 更新系統時間的方法。每次時間都新增到底部:
<html> <head> <title>Prototype examples</title> <script type = "text/javascript" src = "/javascript/prototype.js"></script> <script> function insertTime() { new Ajax.Updater('datetime', '/cgi-bin/timer.cgi', { method: 'get', insertion: Insertion.Bottom }); } </script> </head> <body> <p>Click update button many time to see the result.</p> <br /> <div id = "datetime">Date & Time</div> <br /> <br /> <input type = "button" value = "Update" onclick = "insertTime();"/> </body> </html>
這是 timer.cgi 的內容。
#!/usr/bin/perl print "Content-type: text/html\n\n"; $datetime = localtime; print $datetime; print "<br />";
輸出
單個容器,還是成功/失敗替代方案?
讓我們假設在上面的示例中,無論請求成功還是失敗,您都將更新相同的容器。很多時候您可能不希望這樣做。您可能只想對成功的請求進行更新,或者在請求失敗時更新不同的容器。
在下面的程式碼中,只有成功的請求才會更新:
new Ajax.Updater({ success: 'items' }, '/items', { parameters: { text: $F('text') }, insertion: Insertion.Bottom });
下一個示例假設失敗的請求將顯示錯誤訊息作為響應文字,並將繼續用它更新另一個元素,可能是一個狀態區域。
new Ajax.Updater({success:'items',failure:'notice' },'/items', { parameters: { text: $F('text') }, insertion: Insertion.Bottom });
prototype_ajax_tutorial.htm
廣告