2014-09-03 5 views
1

Мы разрабатываем файл скрипта java для сторонних разработчиков, который реализован как виджет на многих сайтах (что мы не делаем контроль кода).контроль перезагрузки стороннего javascript

Этот сценарий может обновляться время от времени (как мы изменить его/добавить способности/исправить ошибку ...)

Как браузер сохраняет большинство JS файлов в кэше, мы должны иметь какое-то решение чтобы сообщить браузеру перезагрузить скрипт. конечно, наивное решение состоит в том, чтобы постоянно выполнять перезагрузку, но это решение не очень эффективно, и изменения кода не должны часто возникать.

Любая идея, как это можно сделать? Решение об изменении нашего скрипта src/url с «? Version = 1.1.1» здесь не применимо, так как этот виджет является третьим лицом, и у нас нет никакого контроля над кодами сайтов клиентов.

Спасибо.

+0

Вы думали о ручном манипулировании DOM, как в документе document.write? – Coldstar

+0

Он должен был бы полностью перезагрузить js, после того как он написал строку версии для документа, которая была бы хитом производительности, загрузив весь скрипт 2 раза. – Dan

+0

Я думал о - всегда загружая скрипт A-, который очень маленький размер, и внутри него загружает основной скрипт с текущей версией, а затем браузер всегда загружает скрипт A и загружает только мой основной скрипт, если версия отличается, что вы думать? – briler

ответ

1

Так как вы третья сторона и даете вашим клиентам ссылку на файл JavaScript, они должны включать в себя, у них указует на ваш JavaScript с URL, как это:

http://example.com/file.js 

Затем используйте редирект на ваш сервер (Url Rewrite/htaccess и т. д.), чтобы указать их на последнюю версию этого файла. Допустим, вы вернули свой сценарий, поместив его в папку, а ваша последняя версия - 1.3. Вы должны настроить перенаправление от http://example.com/file.js до http://example.com/1.3/file.js. Затем каждый раз, когда вы выпускаете новую версию, обновите перенаправление, чтобы указать на новую папку.

EDIT: Подробное описание

+0

Прошу прощения, я не понимаю ваши ответы, а также пример. – briler

Смежные вопросы