Необычное HTTP-кэширование JavaScript / неопределенные проблемы - PullRequest
0 голосов
/ 04 декабря 2009

Хорошо. Я никогда не видел ничего подобного раньше, и я совершенно сбит с толку ... На веб-сайте, над которым я работаю, есть два JavaScript-кода. (Ну, еще много, но проблема возникает только с двумя). Мы назовем их A.js и B.js.

A.js определяет синглтон JavaScript A. Точно так же B.js определяет синглтон JavaScript B. Класс B зависит от методов из A.

У меня почти весь код закручен в блоки try { ... } catch { ... }, и в случае ошибки система генерирует запрос AJAX, чтобы отправить мне подробности ошибки по электронной почте.

В одной системе здесь, в моем офисе (Firefox 3.0 для Mac), я вижу странное поведение. Время от времени, возможно, раз в час или два, но без определенного шаблона, я получаю сообщение об ошибке из класса B: "ReferenceError: A is undefined."

Понятия не имею, почему / как A будет неопределенным иногда . Когда я просматриваю логи apache, во время получения сообщения об ошибке клиент запрашивает /A.js, а затем запрашивает /B.js, а сервер отвечает 304 (не изменено)

Я почему-то подозреваю, что проблема в том, что файл истек из клиентского кэша, однако сервер не отправляет файл, поэтому он никогда не выполняется и A не определен. Но это всего лишь предположение, и я не понимаю, почему это произошло. И если я угадаю правильно, как мне это исправить ???

Если это имеет значение, на сервере был включен mod_disk_cache, и я отключил его, чтобы посмотреть, не является ли это причиной проблемы. Если это так, возможно, это относится к ServerFault ...

Любые предложения очень приветствуются !!

Ответы [ 2 ]

0 голосов
/ 04 декабря 2009

начать вызывать первую функцию js после ! страница загружена, сделайте это <body onload="startmyfunction()"> или аналогичным.

0 голосов
/ 04 декабря 2009

Если в Firefox установлена ​​панель инструментов Webdevelopers, активируйте «Disable Cache», это очень помогает при отладке.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...