Передача карты параметров (списка значений) в JQuery - PullRequest
0 голосов
/ 05 июня 2010

, чтобы инициализировать загруженную JavaScript сетку, мне нужно передать список значений из контроллера / GSP. Поскольку javascript активируется после рендеринга / загрузки страницы, прямого способа сделать это может не быть. 2 возможности 1. сделать вызов ajax и получить список значений с сервера 2. сохранить список в html как скрытый элемент и прочитать его из javascript.

вариант 2 выглядит лучше, поскольку он позволяет избежать нескольких обращений к серверу. Итак, какой элемент управления я должен использовать для списка значений? Любой фрагмент кода jQuery для чтения его обратно в массив / список.

спасибо заранее.

Ответы [ 2 ]

1 голос
/ 05 июня 2010

Вы можете напрямую писать JavaScript со стороны сервера. Я не знаю о Grails, но вот очень простой пример в php:

<script type="text/javascript">
    var someVar = "<?php echo $someServerVar;?>";
</script>

Конечно, этот пример очень прост, но вы поняли идею. И большинство языков будут иметь какую-то функцию, которая экранирует строки JavaScript (в основном " превращается в \", а новые строки в \n).

Если вы поместите такой скрипт вверху вашего <head>, то эти переменные будут доступны из всех других скриптов на странице.

1 голос
/ 05 июня 2010

Это зависит от размера этих данных. Он достаточно маленький, вы можете вставить его на страницу. Например, чтобы заполнить календарь событиями, я использовал что-то вроде:

<div id="calendar" data-events="[/* event list */]"></div>
(атрибут data-events содержал массив объектов JavaScript в формате JSON)

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

Это отвечает на ваш вопрос?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...