Помогите мне понять <сценарий src = “some.js? param1=one; param2=two”/>

Я наблюдал блоки как ниже иногда на веб-страницах. Таким образом, мне любопытно знать то, что это действительно делает? или почему его записанный таким способом?

<script src="somefile.js?param1=one&param2=two" />

я могу только разобрать после немногих намерений позади него

  • Не страница URL (я имею в виду .aspx/.php/.jsp и т.д.), так не вид взламывания кода, где пользователь может добавить код как это для передачи данных, не привлекая пользовательское внимание как его тег, который не представляет на UI ИЛИ реализации старого типа альтернативы Ajax
  • Этот вид параметрического усилителя URL полезен, если пользователь не хочет, чтобы файл JS (какой-либо другой ресурс как изображение) кэшировался. Это может быть быстрым способом справиться с кэшированием

Но я не могу выяснить следующее

  • Похож на параметры страницы URL, но эти параметры так или иначе читаемы в файле JavaScript и имеют некоторую дополнительную утилиту?
  • Эти параметры имеют какую-либо дополнительную роль для проигрывания здесь?
  • Каковы другие возможные практические сценарии, где код как это может использоваться?

Поэтому предоставьте некоторым исходным данным, связанным то же

Спасибо,

8
задан Anil Namde 23 December 2009 в 17:13
поделиться

6 ответов

Запуск кода, отличного от JS, в расширениях .js

В подобных случаях исходный файл .js может (при правильных конфигурациях сервера ) на самом деле содержать PHP / Код .NET в нем, который может читать эти добавленные значения.

Как вы сказали, Избегая кеширования ...

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

7
ответ дан 5 December 2019 в 08:52
поделиться

Либо файл javascript не является статическим (он создается сервером на основе параметров в его строке запроса)

ИЛИ

В самом файле JavaScript вы можете проверить собственные параметры строки запроса (не только страницы, но и URL-адреса источника javascript).

ИЛИ

(Это не совсем соответствует вашему сценарию, но) вы также можете добавить параметры в конце изображения и URL-адреса скриптов как способ управления версиями. Версия с url = "somescript.js? V = 3" будет кэшироваться пользователем до тех пор, пока страница не изменится, а URL-адрес не станет = "somescript.js? V = 4". Файл будет заменен версией на сервере независимо от настроек браузера.

Я предполагаю (без рассмотрения этого конкретного случая), что файл javascript читает свою собственную строку запроса. Я сделал это,

4
ответ дан 5 December 2019 в 08:52
поделиться

Его можно использовать по трем различным причинам:

1) Сгенерировать файл JavaScript на сервере в зависимости от параметров;

2) Чтобы избежать кеширования;

3) Чтобы передать параметры самому JavaScript

2
ответ дан 5 December 2019 в 08:52
поделиться

URL с '.js' ничего не значит. Он может до сих пор обрабатываться серверным скриптом, таким как ASP или PHP.

.
4
ответ дан 5 December 2019 в 08:52
поделиться

Примером этого на практике может служить серверный обработчик somefile.js, который использует параметры (имена других скриптов) для определения того, какие скрипты действительно нужны, и объединяет/уменьшает их, возвращая их как один файл скрипта somefile.js.

.
0
ответ дан 5 December 2019 в 08:52
поделиться

Похоже на URL-адрес страницы, но читаются ли эти параметры в JavaScript-файле и есть ли у них дополнительная утилита?

Да можно читать их в JavaScript, Scriptaculous использует этот подход для загрузки модулей, например:

<script type="text/javascript" src="scriptaculous.js?load=effects,dragdrop">
</script>

Имеют ли эти параметры какую-либо дополнительную роль ? Каковы другие возможные практические сценарии, в которых такой код может быть использован?

Это также может быть использовано для соединения и минимизации скриптов на стороне сервера, конечно, используя некоторую технику переписывания url, чтобы иметь расширение .js, и, как вы говорите, это обычная техника добавления параметров timestamp, чтобы разбить кэш браузера.

.
2
ответ дан 5 December 2019 в 08:52
поделиться
Другие вопросы по тегам:

Похожие вопросы: