Как я могу получить доступ к параметрам URL в Javascript, загруженном асинхронно с помощью require.js? - PullRequest
1 голос
/ 03 декабря 2011

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

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

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

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

1 Ответ

0 голосов
/ 03 декабря 2011

Чтобы передать параметр из GET в ваш скрипт, у вас есть три варианта:

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

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

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

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

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

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

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

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

...