2014-09-11 25 views
7

最近我注意到我網站的JavaScript代碼中存在一些性能問題。經過一些分析後,我發現問題是我用來跟蹤事件的Marketo Munchking代碼。它看起來像最近他們改變了他們的JS代碼發送每個呼叫Munchkin.munchkinFunction同步http請求。相關的代碼片段是:Marketo Munchkin同步請求傷害JS性能

a=new XMLHttpRequest;a.open("GET",b,!1); ... a.send(); 

我已經打開了的Marketo票,但直到他們解決他們的代碼,我正在尋找一個解決辦法。我想到了幾個:

  1. 有沒有辦法鉤住他們的js代碼強制XMLHttpRequest是異步?
  2. 直接引用其舊版本的腳本是安全的,例如//munchkin.marketo.net/143/munchkin.js。我測試了它,它可以工作,但也許我錯過了一些東西。

是否還有其他解決方法?任何想法是讚賞。

UPDATE

剛從的Marketo支持的響應。他們承認這些電話確實是同步的,但他們聲稱這是不失信息的唯一方法。我想他們會想到在重定向之前撥打Munchkin.munchkinFunction的情況。我不同意他們,並會要求他們提供替代方案。同時,我正在使用他們的代碼的舊版本。

更新#2

得到了他們的支持團隊,說我的想法是好的,但也不能馬上落實他們,他們希望開發商一個接他們,另一響應總有一天......無論如何我已經創建了一個idea in the Marketo community

回答

11

更新(2015年10月):此功能現在記錄在here

我剛走到芒奇金碼(150)的新版本,發現如下無證參數:

Munchkin.init('XXXXXX', {asyncOnly: true}); 

我嘗試過了,它的工作 - 現在所有的HTTP請求是異步。

+0

謝謝,這些錯誤令人沮喪! – Thomas 2015-07-22 20:30:16

+0

我偶然發現了這一點,但我似乎無法找到它的優缺點,因爲它是虛假的與真實的。顯然你的請求現在真的是異步的,但爲什麼這裏的默認值是false? – kamelkev 2017-08-24 00:20:04

0

您確定要使用異步版本的跟蹤代碼嗎?如果您查看Marketo管理員,在跟蹤代碼下,有一個下拉框可選擇跟蹤代碼類型 - 確保它處於異步狀態,然後在您的站點中使用該特定腳本塊。另外,如果您在管理員的Treasure Chest部分下看,則可以啓用測試版Munchkin代碼 - 如果以上操作無效,可以啓用嘗試。

+0

絕對是異步代碼。我會嘗試測試代碼,但我剛剛獲得了Marketo支持的響應。看到我更新的問題。 – Tzach 2014-09-14 12:03:27

+0

嗯,這是一個小問題,必須小心那個。祝你好運! – michaelroper 2014-09-14 14:20:16

+0

您無法從Marketo管理工具中選擇異步跟蹤代碼選項。據說它是異步的,但事實並非如此。它仍會嘗試將鏈接點擊視爲同步調用,這也不會考慮其文檔中指定的默認350毫秒「clickTime」超時。你必須明確指定「asyncOnly:true」。他們的JavaScript代碼段讓我們的網絡媒體資源每當用戶點擊鏈接時觸發6秒以上,並且每當我們嘗試在新標籤頁中打開鏈接時觸發彈出窗口攔截器。 – user1212241 2017-02-17 14:29:50