2017-02-25 6 views
-1

Ich habe diese script, um neue Nachrichten zu erhalten von meinem databaseSpielen Notification Sound mit JavaScript

setInterval(function() { 
     $.ajax({ 
      type: "GET", 
      url: "get_chat.php", 
      dataType: "html", 
      success: function (response) { 
       $(".msg_area").html(response); 
      } 
     }); 
    }, 2000); 

Ich bin versuchen, einen Ton, um es hinzuzufügen, sobald neue Daten an die database hinzugefügt wird, aber wenn ich in den die script oben, spielt sie die audio jeder 2 seconds (ich denke, das liegt daran, dass seine in der setInterval)

setInterval(function() { 
     $.ajax({ 
      type: "GET", 
      url: "get_chat.php", 
      dataType: "html", 
      success: function (response) { 
       $(".msg_area").html(response); 
       var audio = new Audio('audio_file.mp3'); 
       audio.play(); 
      } 
     }); 
    }, 2000); 

Also bitte, frage ich. Wie spiele ich Sounds nur ab, wenn neue Daten zur Datenbank hinzugefügt wurden?

+0

ist jedes Mal "Antwort" kommt? –

Antwort

2

Cache die letzte response und vergleichen Sie es mit der neuen Version, um festzustellen, ob die Audiodatei wiedergegeben werden soll oder nicht.

var lastResponse = '' 

setInterval(function() { 
    $.ajax({ 
    type: "GET", 
    url: "get_chat.php", 
    dataType: "html", 
    success: function(response) { 
     $(".msg_area").html(response) 
     if (lastResponse && response !== lastResponse) { 
     var audio = new Audio('audio_file.mp3') 
     audio.play() 
     } 
     lastResponse = response 
    } 
    }); 
}, 2000); 

Edit: Wenn Sie Audio wollen in einem response kommt das erste Mal zu spielen, entfernen lastResponse && aus dem obigen Code.

+0

Vielen Dank. Das funktioniert gut –

0

Zunächst einmal spielt sicher, dass es alle 2s wegen setInterval()

Sie benötigen num von Nachrichten Zeilen in Ihrer Datenbank, bevor Antwort und nach .. für mich die einfache Sache, die es im Innern vergleichen ist versteckt passieren <div> in Ihre letzte Nachricht

setInterval(function() { 
     var message_num = // get the number from the last message 
     $.ajax({ 
      type: "GET", 
      url: "get_chat.php", 
      dataType: "html", 
      success: function (response) { 
       $(".msg_area").html(response); 
       var new_message_num = // get the number from the last message after response 
       if(new_message_num > message_num){ 
        var audio = new Audio('audio_file.mp3'); 
        audio.play(); 
       } 
      } 
     }); 
    }, 2000); 
Verwandte Themen