關(guān)于預(yù)加載InstantClick的問題解決方法
昨晚在改造的時候代碼高亮沒法執(zhí)行,準(zhǔn)確的說是只執(zhí)行一次,第二次就不執(zhí)行了。所以發(fā)文說明一下,而且大致看了InstantClick的文檔,主要還是一個黑名單區(qū)域的問題。按我個人的理解,黑名單主要包含兩種比較常見的過濾類型,一種是a標(biāo)簽,另一種是js。根據(jù)其原理實際上就是對黑名單區(qū)域不進(jìn)行處理(按正常手動打開的情況加載刷新),這種不處理才能讓相關(guān)的結(jié)構(gòu)和js起作用。。
所以在InstantClick執(zhí)行時,看它的引用語句:
<script type="text/javascript" src="<?php bloginfo('template_directory'); ?>/js/instantclick.min.js" data-no-instant></script> <script data-no-instant>InstantClick.init();</script>
語句作用就過濾掉了InstantClick它本身,相當(dāng)于在執(zhí)行后正常刷新一遍自己。
正常加載刷新js
語句本身的data-no-instant參數(shù)意思就是不處理,并且正常刷新這部分結(jié)構(gòu)。所以如果要其他js在InstantClick下起作用,必須將js本身刷新,可以把代碼寫入instantclick.min.js里面,也可以帶上data-no-instant參數(shù)獨(dú)立引用。如果不將自己的js寫入instantclick.min.js內(nèi),就要利用它的四個參數(shù)來重新載入,參考:http://instantclick.io/scripts
<script data-no-instant> InstantClick.on('change', function() { // 回調(diào) }); InstantClick.init(); </script>
a標(biāo)簽
InstantClick對新窗口打開的a標(biāo)簽是不處理的,還有在帶有data-no-instant參數(shù)的標(biāo)簽包裹下的a標(biāo)簽也不會處理。如<div data-no-instant>這部分會按正常情況刷新</div>。
最后總結(jié):data-no-instant
屬性是用來避免instantclick在頁面切換時對該元素重復(fù)加載(意思就是按正常刷新)。它可以用在script、style標(biāo)簽中,也能放在a標(biāo)簽中,表示該鏈接將使用正常方式打開而不用instantclick加速,但對于div標(biāo)簽是沒有用的,這一點(diǎn)必須知曉。
搞清楚上面兩點(diǎn)就好辦了,之前把它當(dāng)成是ajax來理解,是整個body請求過來。也就是說把不處理的部分放在body標(biāo)簽之外也是可以的。
值得一提的是,我個人還是很中意它緩存后退前進(jìn)的功能的,這樣非常快。
以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
javascript-解決mongoose數(shù)據(jù)查詢的異步操作
這篇文章主要介紹了javascript-解決mongoose數(shù)據(jù)查詢的異步操作,具有一定的參考價值,有興趣的可以了解一下。2016-12-12javascript函數(shù)報Uncaught?ReferenceError:?XXX?is?not?define
本文主要介紹了javascript函數(shù)報Uncaught?ReferenceError:?XXX?is?not?defined,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2023-07-07Javascript 實現(xiàn)的數(shù)獨(dú)解題算法網(wǎng)頁實例
此算法的實現(xiàn),就是模擬人腦的思考和計算過程,有需要的朋友可以參考一下2013-10-10