我希望頁面在發出ajax調用來更新數據庫之前完全加載。我可以在正文onload事件中調用javascript函數,以便頁面完全加載,但我不確定如何從那裏觸發Ajax調用。是否有更好的方法來實現此目的(頁面加載後的Upadating數據庫)?頁面上的Javascript ajax調用onload
回答
使用JavaScript庫(例如,使用jQuery你可以寫:
$(document).ready(function(){
$.ajax({ url: "database/update.html",
context: document.body,
success: function(){
alert("done");
}});
});
沒有jQuery的,最簡單的版本可能是如下,但它沒有考慮瀏覽器的差異或錯誤處理:
<html>
<body onload="updateDB();">
</body>
<script language="javascript">
function updateDB() {
var xhr = new XMLHttpRequest();
xhr.open("POST", "database/update.html", true);
xhr.send(null);
/* ignore result */
}
</script>
</html>
參見:
雅這很好,但我可以做到這一點,而不使用jQuery? – 2010-11-10 13:28:39
'$ .ready'等同於'DOMContentLoaded'而不是'load'。您的jquery/vanilla比較可能會誤導這一點。 你的香草版本應該使用'document.addEventListener'來監聽事件,而不是'onload'屬性,這被認爲是一種非常糟糕的做法。 – ngryman 2016-11-24 14:44:38
僅供參考:棄用聲明:從jQuery 3.0開始,將刪除jqXHR.success(),jqXHR.error()和jqXHR.complete()回調。您可以使用jqXHR.done(),jqXHR.fail()和jqXHR.always()來代替。 – mmv1219 2017-07-27 17:07:08
您可以使用jQuery爲您做到這一點。
$(document).ready(function() {
// put Ajax here.
});
檢查在這裏:
http://docs.jquery.com/Tutorials:Introducing_%24%28document%29.ready%28%29
或者與原型:
Event.observe(this, 'load', function() { new Ajax.Request(...));
或者更好的,定義函數的其他地方,而不是內聯,則:
Event.observe(this, 'load', functionName);
您不必專門使用jQuery或Prototype,但我希望您使用某種類型的庫。任何一個庫都將以比onload更一致的方式處理事件處理,當然,這將使處理Ajax調用變得更容易。如果您必須使用body onload屬性,那麼您應該只能調用與這些示例中引用的相同的函數(onload="javascript:functionName();"
)。
但是,如果您的數據庫更新不依賴於頁面上的呈現,爲什麼要等到它完全加載?您可以在頁面上的JavaScript末尾包含對Ajax調用函數的調用,這應該會產生幾乎相同的效果。
- 1. 頁面上的Javascript函數調用onload和onclick?
- 2. 調用jQuery Ajax函數頁面onload或腳本標記
- 3. 如何在子頁面的onload事件中調用javascript
- 4. 將ajax頁面的值傳遞給調用頁面javascript函數
- 5. 在頁面上調用Javascript AJAX函數的方法
- 6. 使用javascript在visualforce頁面上創建ajax調用webservice url
- 7. 只從jsp頁面onload事件調用一個servlet頁面
- 8. JavaScript函數在頁面的onload,而不是上的onclick
- 9. 如何在標籤OnLoad上調用JavaScript函數OnLoad
- 10. Ajax從JSP頁面調用servlet頁面
- 11. javascript onload頁面無線電檢查
- 12. PHP和AJAX會話:AJAX頁面上的會話變量不同於頁面上調用的頁面
- 13. 在不同的頁面上從javascript調用頁面的webmethod
- 14. 頁面重載Ajax調用
- 15. Ajax調用崩潰頁面
- 16. AJAX頁面提取忽略頁面上的JavaScript
- 17. HTML頁面onload,在JavaScript塊上顯示視頻UI
- 18. 在當前ajax頁面調用ajax頁面
- 19. 在同一頁面上的多個Ajax調用:從Ajax調用的Ajax調用div
- 20. 頁面調用Firefox擴展的JavaScript JavaScript
- 21. 返回調用頁面javascript
- 22. Javascript調用HTML頁面
- 23. 在AJAX onComplete事件被調用之前,頁面上的Javascript沒有執行
- 24. JQuery的Ajax調用停止refresing頁面
- 25. 基於AJAX調用的加載頁面
- 26. 加載頁面後的Ajax調用
- 27. Ajax調用WordPress的自定義頁面
- 28. Django調試錯誤頁面無法在AJAX調用上工作
- 29. CollapsiblePanelExtender:無法在頁面的onLoad中獲取對象(AJAX Toolkit)
- 30. 使用Ajax調用服務器上的實時頁面更新
數據庫更新與onload頁面事件嚴格相關?或者它可以在服務器開始發送頁面時執行? – 2010-11-10 13:22:41