我有一個圖像滾動器阻止資源加載,直到它已經加載。 我試過推遲腳本,但它並不想延遲工作。 在網頁的其他部分之後,最簡單的方法是什麼? 伊夫看了一些jQuery方法,但它像閱讀中國給我在頁面的其餘部分之後加載腳本而不推遲?
回答
這裏有一些不同的選擇:
放置
<script>
標籤</body>
標籤之前。這將允許在腳本甚至開始加載之前加載DOM的其餘部分。建設一些代碼,以動態加載腳本和不運行的代碼,直到
$(document).ready()
火災,這取決於你要多少資源等待開始你的腳本之前甚至$(window).load()
火災。您可以使用$.getScript()
動態加載jQuery中的腳本,或者只是動態地插入腳本標籤也很簡單。排除代碼故障以找出
defer
屬性不起作用的原因,因爲它專爲像您希望其他事物首先加載的情形而設計。我猜這是因爲您爲庫添加了defer
加載,但並未延遲嘗試使用該庫的代碼,因此當您推遲加載庫時代碼不起作用。
在腳本加載一些參考:
load and execute order of scripts
improving website performance by dynamically loading javascript?
在查看您的實際頁面代碼時,當您向defer
添加defer
時,腳本無法工作的原因是您的代碼依賴於該腳本,直到動態滾動代碼加載後才能運行。在看你的代碼,我看到的代碼和類似的另外一個街區塊吧:
<script type="text/javascript">
if (DYN_WEB.Scroll_Div.isSupported()) {
DYN_WEB.Event.domReady(function() {
// arguments: id of scroll area div, id of content div
var wndo = new DYN_WEB.Scroll_Div('wn', 'lyr1');
// see info online at http://www.dyn-web.com/code/scrollers/continuous/documentation.php
wndo.makeSmoothAuto({axis:'h', bRepeat:true, repeatId:'rpt1', speed:100, bPauseResume:true});
var wndo2 = new DYN_WEB.Scroll_Div('wn2', 'lyr2');
wndo2.makeSmoothAuto({axis:'h', bRepeat:true, repeatId:'rpt2', speed:60, bPauseResume:true});
});
}
</script>
這些都具有AFTER滾動庫被加載運行。所以,如果你延遲加載滾動庫,那麼這個代碼必須在加載庫之後運行。
如果您正在將滾動庫移動到</body>
之前,請將這些代碼塊放在它後面(不使用任何defer標記)。
如果我把它放在文檔的末尾,我只是插入它像這樣 – Techagesite
@Techagesite - 是的,你會將它移動到'
'部分的結尾,但是您還必須將使用該庫的DYN_WEB代碼移到插入此腳本標記後的任何位置(請參閱添加到我的答案結尾的內容)。 – jfriend00試試這個:
<script src="http://code.jquery.com/jquery-1.9.1.min.js"></script>
<script>
$(window).bind("load", function() {
// code here
});
</script>
或本:
<script src="http://code.jquery.com/jquery-1.9.1.min.js"></script>
<script>
$(window).bind("load", function() {
if (DYN_WEB.Scroll_Div.isSupported()) {
DYN_WEB.Event.domReady(function() {
// arguments: id of scroll area div, id of content div
var wndo = new DYN_WEB.Scroll_Div('wn', 'lyr1');
// see info online at http://www.dyn-web.com/code/scrollers/continuous/documentation.php
wndo.makeSmoothAuto({axis:'h', bRepeat:true, repeatId:'rpt1', speed:100, bPauseResume:true});
var wndo2 = new DYN_WEB.Scroll_Div('wn2', 'lyr2');
wndo2.makeSmoothAuto({axis:'h', bRepeat:true, repeatId:'rpt2', speed:60, bPauseResume:true});
});
}
});
</script>
我在哪裏放置該代碼? – Techagesite
你可以將它添加到你的頁面正文後面,HTML – sideroxylon
好的是那個代碼javascript? – Techagesite
- 1. 加載html到div而不改變頁面的其餘部分
- 2. PHP退出後沒有加載頁面的其餘部分;
- 3. 在加載剩餘頁面內容後加載頁面的一部分
- 4. PHP頁面獲取重定向而不執行腳本的其餘部分
- 5. Javascript正在加載腳本的其餘部分也是
- 6. Javascript - 在頁面的其餘部分加載圖像
- 7. 在頁面的其餘部分加載一個圖像
- 8. 加載外部腳本異步頁面增加頁面加載延遲
- 9. 在頁面的其餘部分被加載之前,Javascript重定向?
- 10. DOM負載,然後頁面的其餘部分
- 11. asp.net ajax在加載網頁的其餘部分後更新一些部分
- 12. PHP if語句停止加載HTML頁面的其餘部分
- 13. 可以在頁面加載的其餘部分加載JavaScript代碼嗎?
- 14. XHTML JavaScript預加載頁面的其餘部分之前的圖像
- 15. 加載其他零件加載後的頁面的部分
- 16. 加載頁面後加載腳本?
- 17. 應用腳本而不加載延遲
- 18. 推遲img加載,直到頁面加載後?
- 19. 頁面的其餘部分顯示後,jquery圖像滑塊完成加載
- 20. 在外部腳本加載之前,不要執行其餘代碼
- 21. 加載與大圖像檔案DIV加載頁面的其餘部分
- 22. 將文本添加到頁面的頂部,而頁面的其餘部分被壓下
- 23. Viewpager填充頁面的其餘部分
- 24. 加載/運行「<php require ... file.php ...」加載完其餘頁面後
- 25. 頁面更改後不會加載外部腳本react-router
- 26. PHP PDO MySQL不輸出結果,但頁面加載的其餘部分?
- 27. 爲什麼我在加載Bootstrap模式背景後加載頁面內容的其餘部分?
- 28. Facebook頁腳欄是一個iframe,所以它爲什麼不重新加載頁面的其餘部分?
- 29. 加載Adserver腳本,文檔寫入異步/延遲或頁面加載後
- 30. Flask,jinja2:是否可以使用render_template()渲染頁面的一部分而不影響頁面的其餘部分
'它像閱讀中國人me'。那麼,開始學習語言的時候了。 –
'$(document).ready(function(){... // stuff stuff here});'也許? – sideroxylon
嘗試使用$ .getScript();功能。在DOM準備好的時候調用它,並且它的成功回調嘗試調用你需要的圖像滾動函數。嘗試使用這些鏈接http://api.jquery.com/jquery.getscript/和http://www.w3schools.com/jquery/ajax_getscript.asp – SSS