Как я могу получить доступ к параметрам URL в JavaScript, загруженном асинхронно require.js?

StackOverflow https://stackoverflow.com/questions/8363646

Вопрос

Я использую requirejs для загрузки модулей в моем приложении. Мне нужно передать параметр URL, который я получаю на index.php в основной модуль. Есть несколько способов, которыми я вижу, чтобы сделать это, но я бы предпочел, если бы единственным в индексе все еще было по сути:

<script type="text/javascript" data-main="scripts/main" src ="scripts/require-jquery.js"></script>

Потому что requirejs говорит, что это лучше для оптимизации. Мой текущий обходной путь состоит в том, чтобы поместить вызов требований в файл индекса и использовать параметр URL. Есть ли способ лучше?

Для справки, я использую PHP на стороне сервера, если это вообще помогает.

Это было полезно?

Решение

Чтобы перенести параметр от Get to Your Script, у вас есть три варианта:

Используя $ _Session для хранения значения и динамично редактировать основной файл JS.Это приведет к смехотворно большим накладным расходам и добавит много ненужного соучастия (больше соучастия => больше ошибок)

Добавьте этот код http://www.onlineaspect.com/2009/06/10/reading-get-variables-with-javascript/ к вашему основному модулю Чтобы найти параметр через Javscript.

Создайте небольшой сценарий Java с PHP (используя $ _get), чтобы установить значение. Который теоретически быстрее, чем другие варианты.

Не должно быть существенной разницы в скорости между вариантом 2 и 3, поэтому просто выберите то, что соответствует вашим потребностям.

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

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

Надеюсь, это поможет.

РЕДАКТИРОВАТЬ: Если ваш основной модуль не требует параметра перед загрузкой всех скрипсов, вы можете использовать скрипт из опции 2 в дополнительном модуле, который устанавливает значение в вашем основном модуле. Это также решило бы проблему обновления.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top