2011-12-06 10 views
0

EDIT:OK、私が思いついた解決策は、基本的に文字数をカウントし、数字の違いを見ることです。私が持っていたひとつの頭痛は.html()が
にスラッシュ(
)を表示していないという事実に関連していました。煩わしい...jQuery AJAXのデータをHTMLに

function verifica(){ 
    $.ajax({ 
    type: "GET", 
    datatype: "html", 
    url: 'icallverifica.php', 
    data: "valor=0", 
    success: function(data) { 
     var verificando = $('#results').html(); 
     var verificandox = (verificando.length); 
     var verificador = data.length; 
     if(verificandox != verificador){ 
      $('#results').html(data); 
     } 
    } 
    }); 
} 

データベースからデータを取得するAJAXを使用して、小さなスクリプトを作成しています。問題は、私がsetIntervalを使用していて、いつもリフレッシュしているということです。

function verifica() { 
    $.ajax({ 
     type: "GET", 
     datatype: "html", 
     url: 'icallverifica.php', 
     data: "valor=0", 
     success: function(data) { 
      var verificando = $('#results').html(); 
      if (verificando != "<html>"+data+"</html>") { 
       $('#results').html(data);} 
      } 
    }); 
} 

機能の変更:私はあまりにも多くのデータベースへのアクセスに問題がない

、私の問題は、私はデータベースに新しい項目があるまで、可能な限りコンテンツは静的したいということです#results divはデータベース情報を導入していますが、新しいエントリがない限りdivコンテンツを変更したくないということです。

私がやったことは、データベースをチェックして、divの前の内容を比較したところ、同じであれば上書きされませんでした。

でも、データをHTML形式にすることはできません...

答えて

0

successハンドラを変更してみてくださいへ:

success: function(data) { 
    var verificando = $('#results').html(); 
    if (verificando != data) { 
     $('#results').html(data);} 
    } 
} 
+0

私もそれを試みました、うまくいきませんでしたが、私のポストの解決策を見ることができます。 – Souza

0

代わりにこれを試しましたか?

if (verificando != data){ 
    $('#results').html(data); 
} 

データを比較する際に、<html>を連結する必要はありません。

+0

ほとんどすべてを試しましたが、別の解決策がありました。最初の投稿を参照してください。どうもありがとう。 – Souza

0

このような比較は過剰です。基本的に各結果に関連付けられたIDを確認してから、新しい部品だけを更新することができます。

idをAjaxリクエスト自体とともに送信し、レスポンスを除外して新しい結果のみを送信することができます。

+0

あなたは実用的ではないので、実用的な解決策を考え出しました。私のポストを参照してください。 – Souza

関連する問題