我是Hotjar的首席架構師,所以我將解釋為什么我們以這種特殊的方式做到這一點。
我們需要在加載主腳本之前做一些事情。
h.hj = h.hj ||函數(){。(h.hj.q = h.hj.q || [])推(參數)};
該特定行允許我們在加載主腳本后存儲要執行的操作。 它允許在我們的腳本加載之前調用hj('trackVirtualPageView','/ url')之類的東西。
我們可以將設置之類的內容存儲為代碼段的一部分。
h._hjSettings = {hjid:9999,hjsv:5};
在加載腳本時,這絕對可以作為查詢字符串的一部分添加。 使用這種方法的缺點是我們會得到不太優化的緩存,因為瀏覽器不可能知道script.js?hjid = 1和script.js?hjid = 2實際上加載了相同的JS文件。
- 我們在最后一部分中所做的實際上只是創建一個
<script async=1>
標記並將其添加到<head>
,這非常有效。 我們之所以通過JS這樣做是因為我們希望讓用戶盡可能簡單地讓代碼放在一個地方。
可能會有更好的做我們正在做的事情,我很幸福沒有意識到,如果有,請聯系並告訴我它! :)