我想創建一個代碼,每10秒重新加載一部分頁面,如果它無法重新加載(因爲連接問題),那麼它會播放聲音。如果頁面沒有加載,則執行代碼
這樣的事情可能使用ajax和如何?我之前在網絡聊天中看到過這種功能,但從未遇到過它的代碼。
我想創建一個代碼,每10秒重新加載一部分頁面,如果它無法重新加載(因爲連接問題),那麼它會播放聲音。如果頁面沒有加載,則執行代碼
這樣的事情可能使用ajax和如何?我之前在網絡聊天中看到過這種功能,但從未遇到過它的代碼。
在服務器上播放聲音,只要嘗試使用setInterval函數:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=windows-1250">
<title>Test</title>
<link rel="stylesheet" href="http://code.jquery.com/ui/1.10.3/themes/smoothness/jquery-ui.css" type="text/css">
<script src="http://code.jquery.com/jquery-1.9.1.js" type="text/javascript" language="JavaScript"></script>
<style type="text/css">
<!--
.square {
background-color: #AAAAAA;
width: 250px;
height: 100px;
}
//-->
</style>
<script type="text/javascript" language="JavaScript">
$(document).on('ready',function(){
setInterval(updateDiv,10000);
});
function updateDiv(){
$.ajax({
url: 'getContent.php',
success: function(data){
$('.square').html(data);
},
error: function(){
//Code to play a sound
$('.square').html('<span style="color:red">Connection problems</span>');
}
});
}
</script>
</head>
<body>
<h1>The next div will be updated every 10 seconds</h1>
<div class="square">
Hello
</div>
</body>
</html>
而且PHP腳本:
<?php
echo "Updated value --> " . rand();
?>
要測試,請嘗試重命名php腳本(模擬連接問題)並重命名爲原始名稱(getContent.php)以再次測試正確的情況。希望這可以幫助。
很好的答案,我會在一瞬間測試一下,只是一個最後的要求。你能告訴我一個簡單的代碼來播放一個簡短的WAV文件嗎?也許你可以用這個代碼更新你的答案? – 2013-05-08 01:36:15
@GaryWoods我發現ogg格式是針對網頁聲音的跨瀏覽器支持的最佳選擇。如果你不需要跨瀏覽器支持,你可能會用wav很好,但ogg是我相信的html5標準。 – FloatingCoder 2013-05-08 02:31:28
這是一個很好的答案,接受! – 2013-05-08 09:41:40
使用jQuery,您可以添加處理程序運行失敗...
$.ajax({
dataType: "json",
url: "myurl.com"
}).done(function(data) {
//do what you want when it's all good
}).fail(function() {
//do what you want when the call fails
});
或者你也可以這樣來做...
$.ajax({
type: "post",
url: "/SomeController/SomeAction",
success: function (data, text) {
//do what you want when it's all good
},
error: function (request, status, error) {
//do what you want when the call fails
}
});
而且每個請求,這裏是一個jsfiddle ,它每2秒調用一次服務,或者使用返回日期的URL,或者使用會失敗的錯誤URL來模仿失敗的服務器。
UPDATE:我修改的jsfiddle作爲聲音仍然是對:)
你能否給你的答案添加一個jsfiddle.net來證明這一點?理想情況下,刷新每10秒刷新一次,並在刷新失敗時播放聲音。 – 2013-05-08 00:58:39
你問關於ajax請求失敗,或者如果實際頁面加載失敗? – 2013-05-08 00:34:52
沒有不是最初的頁面,但ajax請求失敗。然而,如果存在連接問題,則ajax函數失敗非常重要。 – 2013-05-08 00:37:59
您是否使用jQuery等任何Javascript框架,或者您是否在使用'XmlHttpRequest'進行此操作? – 2013-05-08 00:42:47