自投放JavaScript的DOM方法在HTML頁面的底部(後<體>)是很多比使用jQuery的「準備」事件快,不應該我們是做迫使:在jQuery中強制觸發?
$('document').trigger('ready');
.. 。在身體標記之後?我沒有真的嘗試過,但它應該加快速度。或者我錯過了什麼?
自投放JavaScript的DOM方法在HTML頁面的底部(後<體>)是很多比使用jQuery的「準備」事件快,不應該我們是做迫使:在jQuery中強制觸發?
$('document').trigger('ready');
.. 。在身體標記之後?我沒有真的嘗試過,但它應該加快速度。或者我錯過了什麼?
'標籤之前注入它的「就緒」代碼('')。 – 2009-11-13 22:30:25
jQuery.ready();
的ready
事件意味着文件已經被解析和DOM可以被操縱。瀏覽器完成解析後會發生這種情況,並且您無法儘快完成此操作。
您認爲這樣的事情會起什麼作用?它是否會在瀏覽器的HTML解析器中翻轉一個魔術開關,使其運行速度比平時更快?它會導致計算機的處理器運行得更快,因此瀏覽器會盡快完成解析文檔?
您無法強制瀏覽器以比任何速度快的速度解析文檔。甚至沒有jQuery ;-)
那不是真的,是嗎? http://stackoverflow.com/questions/1438883/jquery-why-use-document-ready-if-external-js-at-bottom-of-page 我們在客戶端的底部使用domReady()函數網站,我們從來沒有遇到任何問題。實際上,它比使用「就緒」狀態要快很多,並且可以毫無問題地操縱DOM,因爲無論如何都是加載的。 – David 2009-11-13 17:01:28
雖然這不是問題。 OP詢問*觸發ready事件,但這是不可能的:你可以觸發與用戶活動相關的事件,例如'click'來模擬用戶點擊一個按鈕,但是你不能觸發事件取決於瀏覽器已達到給定狀態的DOM的內部表示。將問題改寫爲詢問'$('document')。trigger('load');'並且它顯然沒有意義。 – NickFitz 2009-11-16 12:29:07
當然,您可以觸發與任何用戶活動無關的事件。我想你可以通過使用jQuery.ready()來觸發ready事件。或者jQuery(document).triggerHandler(「ready」); – David 2009-11-18 12:35:39
我有一個密切相關的問題,我最終在找到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();
問題是,生成的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事件。
FWIW ASP.NET AJAX客戶端框架通過在關閉'