由于将 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 ;-)
我有一个密切相关的问题,我最终在求助于 SO 之前自己找到了答案。因为有我的问题的人可能会在这里(“jquery force document ready”的谷歌结果排名第一),请允许我提供一些额外的信息。
我的问题是我正在动态生成一些 HTML(使用 XSLT),这些 HTML 有时会被保存以备后用,但有时我只想用新的 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 事件。