2017-03-14 8 views
-2

データベースで列の内容に応じてJavaScriptを使用すると、カーテンタスク(ajaxを使用)が実行されます。これはうまくいきますが、if文では、要件が満たされたときに、setIntervalの内部にあるので、繰り返します。おそらくコードを貼り付けて、それを見てみるほうが簡単かもしれません。Ajax Ifステートメントの問題

setInterval(function(){ 

    $("#div").load("content.php"); 

    if ($('#div:contains("hello")').length > 0) { 
     alert("Hello, world!"); 
    } 

}, 200); 

上記のように、アラートは間隔が設定されている速度で永遠に通知されます。申し訳ありませんが不明な点がある場合は、フォーラムで質問を正しく行う方法がわかりません。

答えて

0

私は、divがそのコンテンツをすでに取得しているかどうかを確認するためにsetIntervalを使用すると仮定します。 これはコールバック(または約束)で解決できます (使用している)jQueryのloadメソッドはコールバック関数 "complete"を提供します。私はあなたが最初からこのタスクにアプローチする方法の理解の欠如を持っていると思う http://api.jquery.com/load/

$("#div").load("content.php", {}, function(){alert(1)}); 
0

を参照してください。私は、非同期操作がjavascriptでどのように機能するかを調べることをお勧めします。あなたがここで達成しようとしている何

はこのような何かを達成することができる。

$.get("content.php", function(data) { 
    $("div").html(data); 
    if (data.indexOf("hello") > -1) { 
    alert("Hello, world"); 
    } 
}); 
+0

は、それが以前に行ったようにしかし、それはもう自動的に更新されていない、よさそうです。 JavaScriptについてはほとんど知らないので、理解できません。私は単純なPHPの子供です。 –

+0

個人的なジャブではありません@NilsGarland、この種のものを実装しようとする前に、もう少し詳しくお読みください。自動的に更新すると言うと、content.phpの内容が変更されるためですか?もしそうなら、元のsetInterval関数で上記の関数をラップして結果を得ることができます(途中で実際には使用しないでください) – nixxblu