2011-06-22 11 views
1

ウェブサイトのパフォーマンスを向上させるために、私はすべてのコンテンツをdb(あまり大きくない)からbody dataタグに置きました。すなわちhtml bodyタグの制限がクロムと 'I.E'

<body data-blog="<?php echo htmlspecialchars(json_encode($blog)); ?>"> 

localhostでサイトが正常に機能し、ライブサーバーに更新されました。

このサイトのデータにアクセスすると、ここでは問題はありません。問題は、他のユーザーがサイトにアクセスしたときに発生します。私はfirefox 4.を使ってテストしました。私のコンピュータでは動作しますが、他のコンピュータでは動作しません。 bodyタグのデータは表示されますが、シンプルなjavascriptはエラーを出すことなくコンテンツを表示できません。

私はこれをどのようにデバッグでき、何が潜在的な問題であるかわかりません。以下は、bodyタグからデータを表示するために使用しているコードです。私はそれを言及するのを忘れ

<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で動作し、クロムとすなわちも、ローカルホストから自分のコンピュータ上のデータは表示されませんので、私は私が間違っていくつかのことをやっている必要があります確信しています。しかし、私は知りませんが、なぜそれは私のファイアフォックスのライブサイトから作業しているのですか?

+1

私は、これが隠されたdivのコンテンツを持つよりもパフォーマンスにとってどのように優れているかを理解しようとしています。エンコーディングとデコードと要素の作成があなたが保存したCPUサイクルを使い果たしてしまうようです。 – cHao

+0

私は隠されたdivの内容を持っている場合、まだ私は彼にIDを送信して、それは隠しdivとボディタグにデータを入れて同じ時間がかかるので、希望のデータを取得するためにjavascriptを使用します。 –

+0

@G molvi:あなたは言った: "それは同じ時間がかかる"。その上にDOM要素を作成するコストと、HTMLパーサがページの読み込み時にそれを行うコスト。それでは、パフォーマンスの向上はどこですか? – cHao

答えて

1

データを使用する代わりに、隠し要素のどこかにそのデータを貼り付ける方が良いと思います。また、データはjQueryを使用して書き込まれ、読み込まれることを意図しています.HTMLに直接データ・ブログを書くことが問題なく同じことをするかどうかはわかりません。

関連する問題