What's the best practice to transfer a variable value to javascript from server?

Asked
Viewd137

3

I'm developing a pet project with jQuery. Now the application requires some variable value is transferred to client javascript when the page is loaded. I'm wondering what's the best practice to do it.

I can image to do it in two ways. First, render it to be a javascript variable in the page.

<script> <?php echo "var maxid = $maxid;"?> </script>

Which means the client will see

<script> var maxid = <somevar>; </script>

Second, assign it to be an attribute of one element.

<div maxid="<php echo $maxid >" />

Which approach is better? Is there any other way to do it?

6 ответов

7

Ради правильного html я бы выбрал первый метод, хотя на самом деле это не имеет значения, если он выполняет свою работу.

 <script>
$(function() {
    var max_id = <?php echo $max_id;?>;
});
</script>
 
0

Первый способ лучше, потому что вы будете потреблять меньше памяти и ЦП с простой переменной. Идя по пути DIV, вы будете использовать элемент DOM и поиск узла DOM, чтобы прочитать значение.

0

Я бы сделал это переменной javascript (ваша первая альтернатива). Кажется, это обычный подход.

1

Мне редко приходится передавать только одну переменную ... У меня обычно есть полный набор информации, и в этом случае я использую:

 var myAwesomeStuff = <?php echo json_encode($myArrayOfAwesomeInformation); ?>
 

Никакого двустороннего обращения к серверу, как упоминалось ранее, с JSON.

3

Я использую строку JSON для передачи значений клиенту Взгляните на этот пример http: / /blog.reindel.com/2007/10/02/parse-json-with-jquery-and-javascript/

  • JSON - вариант, но это будет стоить как минимум еще одного HTTP-приема и передачи.

    Morgan Cheng06 октября 2009, 01:55
0

- Изменить:

Чтобы было понятно, ваш "вопрос" задает нечто совершенно иное, чем ваш "код". Вам нужно уточнить, в моем посте ниже говорится о «вопросе».

- Старая версия:

Обычно я возвращаю полный HTML-код для отображения на страницах, которые вызывает ajax.

Причина этого в том, что мне не нужно дублировать логику макета в JavaScript, и в конечном итоге он обычно полезен просто для упрощения JavaScript и для формы установки HTML / текстового содержимого соответствующих заполнителей.

Это происходит за счет переноса большего количества данных, но я рад пойти на этот компромисс.