На вкладке Chrome Network Web Developer Tool говорится, что выполнение запросов Dojo AJAX занимает около 44 лет.

16027.8

Вкладка Chrome Network в инструментах веб-разработчика показывает, что для выполнения группы моих запросов AJAX требуется 16027,8 дней. Это... не то, сколько времени они берут.

Я могу воспроизвести это на нескольких машинах, как в среде разработки, так и в рабочей среде. Это происходит для всех запросов Dojo AJAX, которые выполняются onload. Этого не происходит для других веб-приложений или сторонних запросов (таких как вход AJAX или facebook).

Что происходит? Наш сервер как-то облажался? Является ли это ошибкой в ​​инструментах разработчика Chrome (почти наверняка так и есть, верно?), и если да, то можно ли с этим что-то сделать? Это делает визуальный водопад довольно бесполезным, как вы можете себе представить.

Редактировать: по новой информации это, кажется, обычная проблема с сайтами IBM Websphere Commerce. Что насчет сервера или кода может быть причиной этого? Посмотрите здесь примеры:

http://www.ikea.com/us/en/catalog/categories/departments/kitchen/# http://www.lavieenrose.com/webapp/wcs/stores/servlet/LVER_10052_10001_-1 http://www.ferragamo.com/shop/en/usa

Редактировать 2: эта проблема исправлена ​​​​в новейшей версии Chrome.


person MattDiamant    schedule 20.11.2013    source источник
comment
Довольно хорошая задержка для такого длинного запроса.   -  person Adam    schedule 20.11.2013
comment
Это версия Chrome 31.0.1650.57 m в Windows 7, если это поможет.   -  person MattDiamant    schedule 20.11.2013
comment
Вы пробовали запустить его со всеми отключенными надстройками в браузере?   -  person epascarello    schedule 20.11.2013
comment
Я только что снова запустил его в режиме инкогнито (который отключает расширения), и результаты те же.   -  person MattDiamant    schedule 20.11.2013
comment
@MattDiamant - я использую ту же сборку в той же ОС и не вижу никаких отклонений в своих инструментах разработки. Не могли бы вы опубликовать ссылку на сайт, который дает вам эти результаты?   -  person Adam    schedule 20.11.2013
comment
Я не могу выдать сайт своего клиента, НО!! Я нашел другой сайт, использующий тот же фреймворк, и возникла та же проблема. ikea.com/us/en/catalog/categories/departments/ kitchen/# Обратите внимание, что у них та же проблема, но их AJAX не от Dojo. Итак, это должен быть фреймворк, которым является Websphere Commerce. Я просмотрел еще несколько сайтов, которые его используют, и большинство из них отображают эту проблему.   -  person MattDiamant    schedule 20.11.2013
comment
То же самое происходит на моих сайтах SharePoint... и я использую jquery для выполнения вызовов ajax. Тот же код отлично работал несколько недель назад. Я думаю, это проблема с хромированным разработчиком.   -  person Erik Simonic    schedule 22.11.2013
comment
Только что понял, что 16041 день назад было 1 января 1970 года. EPOCH FAIL.   -  person MattDiamant    schedule 05.12.2013


Ответы (2)


Эта проблема не связана с веб-платформой или сервером. Проблема затрагивает версию браузера Chrome 31.0.1650.57.

Теперь проблема исправлена ​​и будет доставлена ​​​​со следующим стабильным обновлением канала. Исправить разницу

Если вам нужно срочное исправление, вы можете обновить его до версии канала разработки. Инструкции

Дополнительные сведения см. в этой проблеме.

person Viktor Aseev    schedule 26.11.2013

Очень странно. Также можно воссоздать в Chrome 31.0.1650.57 на OSX Mavericks. Протестировано со ссылкой на ikea. Обратите внимание, что Chrome сообщил о 16028,7 днях, задержке 41 мс для ресурса /us/en/iows/tealium.

Прокси-сервер Charles показывает эти заголовки:

HTTP/1.1 304 Not Modified
Content-Type: application/json
Last-Modified: Mon, 18 Nov 2013 18:34:51 GMT
Cache-Control: public, max-age=7200
Date: Sat, 23 Nov 2013 00:32:26 GMT
Connection: keep-alive
Vary: Accept-Encoding

Прокси-приложение (Charles) не сообщает о таком странном времени — оно показывает 40 мс.

Ссылка на lavieenrose.com привела к тому, что Chrome также сообщил о времени 16028,7 дней... это, кажется, общее. Чарльз показывает:

HTTP/1.1 200 OK
Date: Sat, 23 Nov 2013 00:46:37 GMT
Server: IBM_HTTP_Server
Last-Modified: Tue, 19 Jun 2012 13:05:34 GMT
ETag: "5c487f-1a15-4c2d2f01a0380"
Accept-Ranges: bytes
Vary: Accept-Encoding
Content-Encoding: gzip
Content-Length: 1738
Content-Type: application/x-javascript

Мой вывод: это не ответ сервера или проблема с заголовками. Я думаю, что это проблема инструментов разработки Chromium или WebKit.

Вот HEAD объекта JS инструментов разработчика, который представляет http-запрос, отображаемый на вкладке «Сеть»:

https://code.google.com/p/chromium/codesearch#chromium/src/Third_Party/WebKit/Source/devtools/front_end/NetworkRequest.js

Меня интересует математика в set endTime():

set endTime(x)
{
    if (this.timing && this.timing.requestTime) {
        // Check against accurate responseReceivedTime.
        this._endTime = Math.max(x, this.responseReceivedTime);
    } else {
        // Prefer endTime since it might be from the network stack.
        this._endTime = x;
        if (this._responseReceivedTime > x)
            this._responseReceivedTime = x;
    }
},

Ответов пока нет, но, возможно, кто-то, кто лучше разбирается в WebKit/Chromium DevTools, увидит это...

person Scott Heaberlin    schedule 23.11.2013