如何隐藏页面源代码中的json对象?

如何隐藏页面源代码中的json对象?

问题描述:

iam在我的php文件中使用json对象,但我不想让我的json对象在源代码中显示,因为它增加了我的页面大小。如何隐藏页面源代码中的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从我的源对象的值,我怎么能做到这一点? ? PLZ的帮助!

+4

这似乎很无用。您将数据从服务器传递到浏览器,并要求浏览器执行解释工作。你的问题是如何从浏览器中隐藏这些信息,但仍然解释它。您要求浏览器执行的任何操作都可以通过某种方式查看。 – 2010-01-11 05:46:31

不是直接将JSON日期写入文档,而是可以使用XMLHttpRequest或使用库如JQuery在脚本运行时加载JSON数据。

我不确定有什么方法可以解决您的问题,除了改变你的想法是否它是一个问题(它不是,真的)。

如果不输出它,则不能在页面中使用JSON对象。获取对象的唯一方法是为它创建一个单独的AJAX请求。如果你没有这样的说法,你还在转移确切相同的字节数,你会有的,可是现在你已经添加一个额外的HTTP请求的开销(这将是较大比原来的要多,因为传输中现在有HTTP标头)。这种方式在你的页面加载时也会变慢,因为你必须加载页面,然后发送AJAX请求并运行结果。

有很多更好的方法来管理你的网页的大小。 JSON只是文本,所以你应该看看server-side solution to zip your content, like mod_deflate。 mod_deflate在动态PHP输出以及静态页面上运行得非常漂亮。如果您无法控制Web服务器,则可以使用PHP的built in zlib compression

这很大程度上取决于您的json数据。如果你在html中内嵌的数据是巨大的,你可能会考虑使用ajax来加载json数据。假设你希望你的页面加载得更快,即使没有数据。

如果数据不是那么大,请尽量保持数据内联,而不用额外的http请求。要加快你的页面,请尝试使用YSlow!看看你可以优化的其他领域。