1
为了提高网站的性能,我把所有内容从db(不是很大)放到body数据标签中。即Chrome中的body标签限制和'I.E'
<body data-blog="<?php echo htmlspecialchars(json_encode($blog)); ?>">
该网站在本地主机上正常工作,我更新到现场服务器。
当我从这个网站访问数据时,它工作正常没有问题。当其他人访问该网站时出现问题。我测试了它使用Firefox 4.在我的电脑上它可以工作,但它不适用于任何其他电脑。它确实显示了body标签中的数据,但是简单的javascript无法显示内容而没有提供任何错误。
我不知道我该如何调试,以及可能存在的问题。下面是我用来显示身体标记数据的代码。
<body data-blog="<?php echo htmlspecialchars(json_encode($blog)); ?>">
<script>
$(document).ready(function()
{
$("#h_menu li").click(function(e)
{
var cid = $(this).attr('id');
$("#contents").empty();
var blog = $(document.body).data('blog');
var tags = $.parseJSON(blog);
$("#tmenu").empty();
for(var n in tags)
{
if(tags[n].cat_id == cid)
$('#tmenu').append("<li id='"+tags[n].id+"'>"+ tags[n].tag_name +"</li>");
}
});
$("#tmenu li").live("click",function()
{
var id = $(this).attr('id') ;
var blog = $(document.body).data('blog');
var tags = $.parseJSON(blog);
$('#contents').empty().hide();
$('#contents').html(tags[id-1].tag_content).fadeIn(600);
});
});
</script>
我忘了提及它只能在FF4,铬,即不显示,即使从本地主机在我的电脑上的数据,所以我相信我必须做一些事情是错误的。但我不知道哪些事情,为什么它在我的Firefox中从现场工作?
我想了解这是如何比隐藏的div中的内容更好的性能。似乎编码和解码以及元素创建会占用您保存的任何CPU周期。 – cHao
如果我有一个隐藏的div内容,那么我仍然会使用javascript通过发送他的id来获取所需的数据,因此将数据放入隐藏的div和body标签需要相同的时间。 –
@G莫尔维:你说过:“它需要同一时间”。除此之外,还有即时创建DOM元素的成本与让HTML解析器在页面加载时执行该操作的成本。那么性能增益在哪里? – cHao