динамическое подключение js
Пол дня уже ищу решение проблемы, не могу найти...
Суть такова: необходимо после загрузки страницы динамически подгружать js код. Тут в общем проблем нет, хоть его ажаксом получай, eval-ом обрабатывай, хоть в страницу с тегом script пихай, все работает отлично. Но, тк ожидается хорошая нагрузка на ресурс, хотелось бы кэшировать все это дело. Вот тут проблема и вылезает. Если я создаю в заголовке <script src=...>, где src кажет на мой скрипт, он подключается, выполняется, НО! в его url все браузеры добавляют параметр вида "?_=12345...", где число рандомное. Сделано это, я так понимаю, специально, чтобы скрипт не кэшировался (при этом когда так же подключаются к примеру css-ки, ничего подобного не замечаю). И тк это делается во всех браузерах, я так подозреваю, что это должно быть оговорено в каких-нибудь стандартах, но никакой информации чета по этому поводу не могу найти. Так вот вопрос, как сообщить браузеру, что я все же хочу его кешировать? В заголовке Last-Modified отправляю, но он похоже по url-лу сам решает, что нужно заново запрашивать файл. Ну и еще, при всем этом сам тег <script> в DOM-е документа тоже не появляется, но ет уже не столь важно, код исполнился, больше мне от него особо ничего не нужно, но все же, для полноты картины, не помешал бы... |
Цитата:
Цитата:
|
ну код такой:
log($('head script').length); var code = '<script type="text/javascript"' + ' src="' + url + '"' + '></script>\n'; $('head').append(code); log($('head script').length); в лог в обоих случаях одно и то же кол-во тегов возвращает, следовательно, если я правильно понимаю, тег явно не добавился (но код скрипта из него нормально выполнился), ну и мой url содержит строку вида "/_blockjs/borda", а в отладчиках браузеров, и на сервере кажет строку вида "http://tux.nsk.ru:8080/_blockjs/borda?_=1322649986270" |
хм, неужель ет jquery ет добавлял, ща на чистом жаваскрипте сделал, вроде нормально вставилось, но загрузку скрипта не сделал, ладно, спасибо, причина ясна, буду копать дальше :)
|
Часовой пояс GMT +3, время: 13:47. |