由于将javascript DOM方法放在html页面的底部(在< body>之后)比使用jQuery'ready'事件要快得多,我们不应该通过这样做来强制它:
$('document').trigger('ready');
...身体标签后?我还没有尝试过这个,但它应该加快速度。或者我错过了什么?
答案 0 :(得分:6)
jQuery.ready();
答案 1 :(得分:1)
ready
事件意味着现在已经解析了文档,并且可以操作DOM。当浏览器完成解析时就会发生这种情况,而且你不能早点实现它。
你觉得这样的事情怎么样?它是否会在浏览器的HTML解析器中翻转魔术开关,使其运行速度比平时快?它会导致计算机的处理器运行得更快,因此浏览器会更快地完成解析文档吗?
您无法强制浏览器以比任何方式更快的速度解析文档。甚至不使用jQuery; - )
答案 2 :(得分:0)
我有一个密切相关的问题,我最终在诉诸SO之前就找到了答案。有问题的人可能会在这里登陆(第一个google结果为“jquery force document ready”),请允许我提供一些额外的信息。
我的问题是我动态生成一些HTML(使用XSLT),有时会保存以供日后使用,但有时我只想用新的HTML打开一个新窗口,以便用户可以预览它。像这样:
var html = UseXSLTToGenerateSomeHTML();
var myWindow = window.open('', '', 'width=805,height=493');
myWindow.document.write(html);
myWindow.focus();
问题是,生成的HTML使用jQuery,并且从未调用domready事件。从大卫的答案中我可以很明显地知道如何做到这一点,但是调整瞬间逃过了我。它是:
var html = UseXSLTToGenerateSomeHTML();
var myWindow = window.open('', '', 'width=805,height=493');
myWindow.document.write(html);
myWindow.focus();
mywindow.jQuery.ready();
请注意,在这种情况下,执行此操作的页面甚至不使用jQuery ...只有生成的HTML才会这样做。无关紧要,您正在另一个文档上生成jQuery事件。