Недавно я заметил некоторые проблемы с производительностью в javascript-коде сайта. После некоторого профилирования я обнаружил, что проблема заключается в коде Marketo Munchking, который используется для отслеживания событий. Похоже, что в последнее время они изменили свой JS-код для отправки синхронного http-запроса для каждого звонка до Munchkin.munchkinFunction
. Соответствующий фрагмент кода:Marketo Munchkin синхронные запросы ухудшают производительность JS
a=new XMLHttpRequest;a.open("GET",b,!1); ... a.send();
Я открыл билет с Marketo, но пока они не исправить свой код, я искал обходной путь. Я думал о нескольких:
- Есть ли способ подключить их код js, чтобы заставить
XMLHttpRequest
быть асинхронным? - Безопасно ссылаться непосредственно на старые версии их сценариев, например
//munchkin.marketo.net/143/munchkin.js
. Я тестировал его, и он работает, но, может быть, я чего-то не хватает.
Есть ли еще обходные пути? Любую мысль оценивают.
UPDATE:
Только что получил ответ от поддержки Marketo. Они признают, что звонки действительно синхронны, но они утверждают, что это единственный способ не потерять информацию. Думаю, они думают о случае, когда звонок до Munchkin.munchkinFunction
сделан непосредственно перед перенаправлением. Я не согласен с ними и попрошу их предоставить альтернативу. В то же время я использую старую версию своего кода.
UPDATE # 2:
Есть еще один ответ от своей команды поддержки, сказали мои идеи хороши, но они не могут реализовать их прямо сейчас, и они надеются, что один из разработчиков будут забрать их когда-нибудь ... Во всяком случае, я создал idea in the Marketo community.
Спасибо, эти ошибки становились разочаровывающими! – Thomas
Я тоже наткнулся на это, но я не могу найти, что за плюсы/минусы за то, что оно было ложным и истинным. Очевидно, что ваши запросы теперь действительно асинхронны, но почему здесь значение false? – kamelkev