2014-09-11 2 views
7

최근에 내 사이트의 자바 스크립트 코드에서 성능 문제가 있음을 발견했습니다. 프로파일 링을 마친 후에 나는 이벤트를 추적하기 위해 사용하는 Marketo Munchking 코드라는 것을 발견했다. 최근에 그들은 Munchkin.munchkinFunction에 대한 모든 호출에 대해 동기 HTTP 요청을 보내도록 JS 코드를 변경 한 것처럼 보입니다. 관련 코드는 다음과 같습니다Marketo Munchkin 동기 요청이 JS 성능을 손상 시킴

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

나는 Marketo와에 티켓을 오픈했지만, 그들은 자신의 코드를 수정 할 때까지, 나는 해결 방법을 찾고 있어요. 몇 가지 생각 :

  1. XMLHttpRequest을 비동기로 만들기 위해 js 코드를 연결하는 방법이 있습니까?
  2. 스크립트의 이전 버전을 직접 참조하는 것이 안전합니다 (예 : //munchkin.marketo.net/143/munchkin.js). 나는 그것을 테스트하고 작동하지만 어쩌면 내가 뭔가를 놓치고있어.

더 많은 해결 방법이 있습니까? 어떤 생각이라도 고맙습니다.

UPDATE는 :

그냥 Marketo와 지원의 응답을 얻었다. 그들은 전화가 실제로 동기식이라고 인정하지만, 이것이 정보를 잃지 않는 유일한 방법이라고 주장합니다. 리디렉션 직전에 Munchkin.munchkinFunction에 전화가 걸린 경우를 생각합니다. 나는 그들과 의견을 달리하고 대안을 제시하라고 요구할 것이다. 그때 나는 그들의 코드의 옛 버전을 사용하고있다.

2 UPDATE 번호 :

있어 내 아이디어가 좋은,하지만 지금을 구현할 수 없습니다, 그들은 개발자 중 하나를 선택할 수 있기를 바랍니다 말했다 그들의 지원 팀에서 다른 응답 언젠가 ... 어쨌든 idea in the Marketo community을 만들었습니다.

답변

11

업데이트 (10 월 2015) :이 기능은 이제 here으로 기록됩니다.

난 그냥 아가야 코드 (150)의 새로운 버전 위에 가서 다음 문서화되지 않은 매개 변수를 발견

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

나는 그것을 시도하고 그것은 일을 - 모든 HTTP 요청은 이제 비동기입니다.

+0

감사합니다. 그 오류는 실망스러워졌습니다! – Thomas

+0

나는 이것에 또한 비틀 거렸다, 그러나 나는 진실한을 대 진실한으로 가지고있는 것을 위해 찬성/죄수가 무엇인지 찾아 낼 수없는 것처럼 보일 수있다. 분명히 당신의 요청은 이제 정말로 비동기 적이지만, 왜 디폴트가 false입니까? – kamelkev

0

비동기 버전의 추적 코드를 사용하고 있습니까? Marketo 관리자의 추적 코드에서 추적 코드 유형을 선택하기위한 드롭 다운이 있습니다.이 유형이 비동기인지 확인한 다음 사이트에서 해당 스크립트 블록을 사용하십시오.

또한 관리자의 보물 상자 섹션을 보면 베타 만치 킨 코드를 활성화하는 옵션이 있습니다. 위의 코드가 작동하지 않으면 시도해보십시오.

+0

확실히 비동기 코드입니다. 베타 코드를 사용해 볼게요.하지만 방금 Marketo의 지원을 받았습니다. 내 업데이트 된 질문보기 – Tzach

+0

흠, 그것은 약간의 잡았다, 저것을 위해 조심해야 할 것이다. 행운을 빕니다! – michaelroper

+0

Marketo 관리 도구에서 비동기 추적 코드 옵션을 선택할 수 없습니다. 그것은 비동기라고 말하지만 실제로는 그렇지 않습니다. 여전히 링크 클릭을 동시 호출로 취급하려고합니다.이 호출은 문서에 지정된 기본 350 밀리 초 "clickTime"시간 제한을 준수하지 않습니다.명시 적으로 "asyncOnly : true"를 지정해야합니다. 자바 스크립트 스 니펫은 사용자가 링크를 클릭 할 때마다 6 초 이상 걸리는 웹 속성을 만들고 새 탭에서 링크를 열려고 할 때마다 팝업 차단기를 트리거합니다. – user1212241