Как скрыть объект JSON из исходного кода страницы? - PullRequest
0 голосов
/ 11 января 2010

Я использую объект json в моем php-файле, но я не хочу, чтобы мой объект json отображался в исходном коде, поскольку это сильно увеличивает размер моей страницы.

это то, что я делаю в php

$json = new Services_JSON();
$arr = array();
$qs=mysql_query("my own query");
while($obj = mysql_fetch_object($qs))
{
    $arr[] = $obj;
}
$total=sizeof($arr);
$jsn_obj='{"abc":'.$json->encode($arr).',"totalrow":"'.$total.'"}';

и это javascript

echo '<script language=\'javascript\'>
var dataref = new Object();
dataref = eval('.$jsn_obj.');
</script>';

но я хочу скрыть это значение объектов $ jsn_obj из моего источника, как я могу это сделать ??? Пожалуйста, помогите !!

Ответы [ 3 ]

6 голосов
/ 11 января 2010

Я не уверен, что есть способ обойти вашу проблему, кроме как передумать, является ли это проблемой вообще (на самом деле это не так).

Вы не можете использовать объект JSON на своей странице, если не выводите его. Единственный другой способ получить объект - это сделать для него отдельный AJAX-запрос. Если бы вы сделали это таким образом, вы по-прежнему переносите точно такое же количество байтов , которое вы изначально имели бы, но теперь вы добавили накладные расходы дополнительного HTTP-запроса (который будет больше , чем он был бы изначально, поскольку теперь на передаче есть заголовки HTTP). Этот способ также будет медленнее при загрузке вашей страницы, так как вам нужно будет загрузить страницу, затем отправьте запрос AJAX и запустите результат.

Существуют гораздо лучшие способы управления размером ваших страниц. JSON - это просто текст, поэтому вам следует поискать серверное решение для архивирования вашего контента, например mod_deflate . mod_deflate прекрасно работает как с динамическим выводом PHP, так и со статическими страницами. Если у вас нет контроля над вашим веб-сервером, вы можете использовать встроенное в PHP сжатие zlib .

0 голосов
/ 11 января 2010

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

Если данные не так уж велики, постарайтесь сохранить их встроенными, не делая лишних http-запросов Чтобы ускорить вашу страницу, попробуйте использовать YSlow! чтобы увидеть, какие еще области вы можете оптимизировать.

0 голосов
/ 11 января 2010

Вместо записи даты JSON непосредственно в документ, вместо этого вы можете использовать XMLHttpRequest в или использовать библиотеку типа JQuery для загрузки данных JSON во время выполнения скрипта.

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