由于将JavaScript DOM方法放在HTML页面底部(<body>之后)比使用jQuery的'ready'事件要快得多,我们是否应该通过以下方式强制执行:
$('document').trigger('ready');
在body标签后面添加脚本,这样做可以加快网页加载速度。我自己没有亲测过,但应该是可行的。不知道有没有遗漏什么?
由于将JavaScript DOM方法放在HTML页面底部(<body>之后)比使用jQuery的'ready'事件要快得多,我们是否应该通过以下方式强制执行:
$('document').trigger('ready');
在body标签后面添加脚本,这样做可以加快网页加载速度。我自己没有亲测过,但应该是可行的。不知道有没有遗漏什么?
jQuery.ready();
ready
事件意味着文档已经被解析并且DOM可以被操作。这发生在浏览器完成解析时,你无法让它更快。
你认为这样的事情会怎么样?它会在浏览器的HTML解析器中翻转一个魔法开关,使其比通常运行得更快吗?它会导致计算机的处理器运行更快,以便浏览器更快地解析文档吗?
你无法强制浏览器比它本来要快地解析文档。即使使用jQuery也不行 ;-)
ready
事件,但这是不可能的:你可以触发与用户活动相关的事件,例如click
来模拟用户点击按钮,但你无法触发依赖于浏览器内部表示DOM已达到给定状态的事件。将问题重新表述为询问$('document').trigger('load');
,那么它就毫无意义了。 - NickFitzwindow.onload();
来使onload
处理程序被执行,但这并不意味着文档已经加载。 - NickFitz我有一个相关的问题,最终在没有发布到SO之前自己找到了答案。由于有相同问题的人可能会来到这里(“jquery force document ready”是谷歌搜索结果的第一名),所以让我提供一些额外的信息。
我的问题是,我正在动态生成一些HTML(使用XSLT),有时将其保存以备后用,但其他时候我只想打开一个新窗口并显示新的HTML,以便用户可以预览它。就像这样:
var html = UseXSLTToGenerateSomeHTML();
var myWindow = window.open('', '', 'width=805,height=493');
myWindow.document.write(html);
myWindow.focus();
var html = UseXSLTToGenerateSomeHTML();
var myWindow = window.open('', '', 'width=805,height=493');
myWindow.document.write(html);
myWindow.focus();
mywindow.jQuery.ready();
</body>
标签之前注入其“ready”代码(<script>Sys.Application.initialize()</script>
)来加载它。 - Roatin Marth