在我的网站上,我有一个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