鍍金池/ 問答/Linux  HTML/ 是什么導(dǎo)致頁面上的某模塊一定要刷新一次后才能出現(xiàn)?

是什么導(dǎo)致頁面上的某模塊一定要刷新一次后才能出現(xiàn)?

我的shopify網(wǎng)店頁面上用了一個(gè)第三方的用戶評(píng)論模塊Yotpo,用戶的評(píng)論是存儲(chǔ)在yotpo的網(wǎng)站上,加載頁面時(shí)通過javascript發(fā)送ajax請(qǐng)求獲取評(píng)論后顯示在頁面上。
碰到的問題是有時(shí)候第一次加載頁面時(shí),該模塊不會(huì)顯示,一定要手動(dòng)刷新一下頁面,評(píng)論模塊才會(huì)顯示。前幾天我?guī)缀趺看未蜷_頁面時(shí)這個(gè)問題都會(huì)出現(xiàn),這幾天這個(gè)問題變成偶爾才會(huì)出現(xiàn),這樣就導(dǎo)致Debug更加困難了。

想請(qǐng)教一下,是什么原因造成頁面上的一個(gè)模塊一定要刷新一次才會(huì)出現(xiàn)呢?

用于加載該模塊的javascript是用如下語句載入頁面的

<script type="text/javascript">(function e(){var e=document.createElement("script");e.type="text/javascript",e.async=true,e.src="http://staticw2.yotpo.com/thisissomeapikeys/widget.js";var t=document.getElementsByTagName("script")[0];t.parentNode.insertBefore(e,t)})();</script>

我個(gè)人對(duì)技術(shù)只有極其粗淺的了解,想來想去只想到一種可能性:因?yàn)檫@個(gè)widget.js文件是從第三方網(wǎng)站異步加載的,加載完成后已經(jīng)錯(cuò)過了某事件的響應(yīng)期,導(dǎo)致不能正常觸發(fā)呢?而刷新時(shí)因?yàn)榇宋募呀?jīng)保存在本地緩存,所以能夠趕上觸發(fā)的事件。

寫信給yotpo的客服反應(yīng)這個(gè)問題,他們的回信看的我一頭霧水,抄錄如下:

It appears that your current theme incorporates AJAX elements in it
and therefore your pages are loaded synchronously.

Since Yotpo loads asynchronously, it will only be loaded once and will
be ignored by any AJAX scripts running on the page. In order to

什么叫“your current theme incorporates AJAX elements in it and therefore your pages are loaded synchronously”?頁面中有ajax元素所以同步加載?這個(gè)因果關(guān)系完全看不懂。

“it will only be loaded once and will be ignored by any AJAX scripts running on the page” ?yotpo被其它ajax腳本忽略?這個(gè)我也看不懂,是說yotpo被一個(gè)統(tǒng)一處理ajax請(qǐng)求的腳本忽略了嗎?

回答
編輯回答
糖果果

為什么不直接用標(biāo)簽加載 widget.js ?

2017年2月27日 15:19
編輯回答
還吻

客服的意思是,問題由異步加載引起,因此你可以嘗試像樓上說的那樣,直接用script標(biāo)簽加載

2017年1月13日 10:49