Каков наилучший способ сообщить настройки PHP в Javascript? - PullRequest
5 голосов
/ 22 декабря 2010

Когда вы создаете приложение, в котором настройки устанавливаются на стороне сервера с помощью PHP, как лучше всего передать эти настройки Javascript при загрузке страницы?

Зачем устанавливать все настройки на стороне сервераа не частично на стороне клиента, частично на стороне сервера? Поскольку приложение определенно написано на PHP, но часть Javascript может быть написана на простом Javascript, JS Prototype, jQuery, ... Таким образом, таким образом мы остаемся одним набором функций PHP длявсе приложение, независимое от слоя Javascript.

Я сам думал о нескольких решениях:

1.Через скрытое поле формы:

<input typ="hidden" name="settings" value="JSON encoded settings" />

Недостатки:

  • Прямой просмотр в исходном коде.
  • Ввод скрытого означает отправку скрытых данных, не для получения данных.

2.С Ajax

Как только страница загружается, на сервер отправляется запрос публикации ajax, который извлекает настройки.

Преимущества:

  • Очистить
  • Клиент может запросить только те параметры, которые ему необходимы.

Недостатки:

  • Более тяжелая загрузка страницы

3.Непосредственно через исходный файл настроек (XML)

Преимущества:

  • Javascript и PHP-код полностью отделены (относительно настроек).

Недостатки:

  • Файл настроек загружается дважды (на стороне сервера + на стороне клиента)

4.Что-то еще?

Редактировать: добавлено одно преимущество для номера 2

Ответы [ 2 ]

2 голосов
/ 22 декабря 2010

Подойдет любой формат, например, yaml, json, xml и т. Д., Потому что вы можете читать его с помощью PHP и преобразовывать в каждый из форматов.

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

Zend Framework имеет приятный компонент кодирования / декодирования JSON .

2 голосов
/ 22 декабря 2010

PHP может генерировать Javascript вы знаете ...

<script type="text/javascript">
    var my_var = '<?php $my_var ?>';
</script>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...