Я создаю полное приложение ajax, в котором есть одна базовая страница, и любые страницы, на которые пользователь переходит в приложении, загружаются через ajax в div содержимого на странице.На базовой странице я включаю различные сценарии, которые необходимы для каждой страницы в приложении (jQuery, jQuery-UI, другие пользовательские файлы javascript).Затем на различных страницах приложения я включаю один или два сценария для каждой страницы, которые содержат логику, необходимую только для этой страницы.В каждом из этих файлов сценариев есть что-то, что выполняется на событии готовности страницы.Проблема в том, что каждый раз, когда пользователь переходит на страницу page1, загружается файл page1.js.Таким образом, если они посещают эту страницу 10 раз, этот скрипт затем загружается десять раз в их браузер.Глядя на инструменты разработчика сценариев Chrome после бега по сайту, я вижу тонны дублированных сценариев.
Я где-то читал о проверке, чтобы убедиться, что сценарий уже загружен с использованием логического значения или сохранении загруженных сценариев вмассив.Но проблема в том, что если я вижу, что скрипт уже загружен, и я не загружаю его, функция готовности страницы не запускается для файла javascript страницы, и все терпит неудачу.
Есть липроблема с загрузкой файла JavaScript снова и снова, когда пользователь посещает одну и ту же страницу несколько раз?
Я заметил, просматривая сетевой трафик, что каждый раз, когда мы посещаем страницу, скрипт запрашивается с параметром случайного числа (/Scripts/Page1.js?_=298384892398), который вызывает принудительный запрос нафайл сценария каждый раз.Я установил параметры cache: true для метода jQuery ajaxSetup, и этот параметр удалил параметр из запроса, и, таким образом, была загружена кэшированная версия файла javascript вместо того, чтобы фактически сделать для него отдельный HTTP-запрос.Но проблема в том, что я не хочу, чтобы все запросы Ajax были кэшированы, так как содержимое постоянно меняется.Есть ли способ принудительно кэшировать только файлы javascript, но разрешить не кэшировать все другие запросы ajax.
Даже когда я принудительно кэшировал все запросы, файл javascript все еще появлялся несколько раз в инструментах разработчика.,Может быть, это не имеет большого значения, но это не совсем правильно.
Любой совет, как справиться с этой ситуацией?