在jQuery中强制触发domready?

时间:2009-11-13 16:14:06

标签: javascript jquery events domready

由于将javascript DOM方法放在html页面的底部(在< body>之后)比使用jQuery'ready'事件要快得多,我们不应该通过这样做来强制它:

$('document').trigger('ready');

...身体标签后?我还没有尝试过这个,但它应该加快速度。或者我错过了什么?

3 个答案:

答案 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事件。