How to update the screen/website only when there is a network connection?
我正在尝试为地板信息设置一个显示屏,这是一个简单的网页。 ajax调用用于根据客户端用于更新信息的管理页面每10秒更新一次屏幕。
我的问题是,当没有互联网连接时,显示仍然会更新并且什么都不显示。 有没有办法我可以改变下面的代码,说是否有互联网连接,然后更新数据库,如果没有网络连接,然后重置计时器,什么都不做。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 | <script type="text/javascript"> // Run the AJAX call to grab the data once $.ajax({ type:"POST", url:"ajax/getMessages.php?section=1", data:"", complete: function(data){ //print result in targetDiv $('#content_1').html(data.responseText); } }); // Then run the same script on a 10-second timer setInterval(function(){ $.ajax({ type:"POST", url:"ajax/getMessages.php?section=1", data:"", complete: function(data){ //print result in targetDiv $('#content_1').html(data.responseText); } }); },10000); |
可能有其他方法可以做到这一点,但这将有效:检查
1 2 3 4 | if(data.responseText.length) { // Display page } |
在
1 2 3 4 5 6 | complete: function(data){ if(data.responseText) { $('#content_1').html(data.responseText); } } |
更好的方法是使用
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 | // Run the AJAX call to grab the data once $.ajax({ type:"POST", url:"ajax/getMessages.php?section=1", data:"", success: function(data) { // Print result in targetDiv $('#content_1').html(data.responseText); }, error: function() { // Error handling code } }); // Then run the same script on a 10-second timer setInterval(function() { $.ajax({ type:"POST", url:"ajax/getMessages.php?section=1", data:"", success: function(data) { // Print result in targetDiv $('#content_1').html(data.responseText); }, error: function() { // Error handling code } }); }, 10000); |
您可以使用
1 2 3 4 5 6 7 8 9 10 11 12 13 | $.ajax({ type:"POST", url:"ajax/getMessages.php?section=1", data:"", complete: function(data, textStatus) { //print result in targetDiv if successfull if (textStatus == 'success') { $('#content_1').html( + ': ' + data.responseText); } } }); |
见http://api.jquery.com/jQuery.ajax/
1 2 3 4 5 6 7 8 9 10 11 12 13 | var timer = setInterval(function(){ $.ajax({ type:"POST", url:"ajax/getMessages.php?section=1", data:"", success: function(data){ //print result in targetDiv $('#content_1').html(data.responseText); }, error: function(){ clearInterval( timer ) } }); },10000); |