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

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

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

想請教一下,是什么原因造成頁面上的一個模塊一定要刷新一次才會出現(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>

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

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

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元素所以同步加載?這個因果關(guān)系完全看不懂。

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

回答
編輯回答
糖果果

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

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

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

2017年1月13日 10:49