在我的網站上,我有一個jquery函數,它在頁面加載後立即從另一個(安全)服務器檢索數據。使用JSONP調用我目前文檔準備事件後加載此數據:測試jquery是否被加載沒有使用文檔就緒事件
<script type="text/javascript">
$(document).ready(function() {
$.getJSON(_secureHost + '/base/members/current.aspx?callback=?', function (data) {
initPage(data);
});
});
</script>
我不喜歡上面所說的,就是JSONP實際上可以在文檔準備事件之前exectued,從而減緩頁面加載。所以,如果我包括在頁面內的jQuery(使用腳本標籤即不引用),然後將下面的代碼的偉大工程,加快網頁載入速度:
<script type="text/javascript">
$.getJSON(_secureHost + '/base/members/current.aspx?callback=?', function (data) {
$(document).ready(function() {
initPage(data);
});
});
</script>
但是包括在每一個頁面jQuery是一個23K的開銷,我」 d喜歡避免。我如何測試jquery是否已經加載,並且只有在加載jquery時才執行initPage()函數?
編輯: 更確切地說,我需要重複檢查,如果jquery被加載,然後執行事件。計時器的工作可能是解決方案..
解決方案: 我已經創建了一個jQuery的檢查前置碼。我的頁面加載速度不能更快:)。感謝大家!
function preInit()
{
// wait until jquery is loeaded
if (!(typeof jQuery === 'function')) {
window.setTimeout(function() {
//console.log(count++);
preInit();
}, 10); // Try again every 10 ms..
return;
}
$.getJSON(_secureHost + '/base/members/current.aspx?callback=?',
function (data) {
$(document).ready(function() {
initPage(data);
});
});
}
這就是近了。但我不知道實際加載jquery需要多長時間。我不得不重複這個檢查,直到jquery被加載。我可以創建一個每10ms左右檢查一次的時間..但是這並不好。 – AyKarsi 2011-01-07 09:22:48
啊,那是什麼意思?我以爲你的意思是你想測試jQuery是否被加載。在那種情況下,我非常肯定,當你退出`
只要您將包含jQuery的腳本標記放置在運行您的函數的腳本標記上方,它就可以正常工作。
結束語腳本在此,而不是現成的功能可以幫助:
來源
2011-01-07 09:16:44 Olical
您可以添加任意加載功能齊全或網格功能齊全像圖所示,這將幫助你做的jqGrid
一些操作來源
2011-01-07 09:21:37
您好我想你應該首先檢查是jQuery和你要使用的方法被定義或沒有
來源
2011-01-07 09:26:20 Hafiz
你確定那之前exectued?請注意,您可能仍然有loading..etc
我猜你需要使用的圖片:
Link
來源
2011-01-07 09:27:20 ifaour
我用footable jQuery插件。這爲我工作:
jQuery的版本 - 1.9.1 footable版本 - 0.5
來源
2014-01-20 14:23:02