我想创建一个代码,每隔10秒重新加载一部分页面,如果它无法重新加载(因为连接问题),那么它会发出声音。
是否可以使用ajax以及如何使用?我之前在网络聊天中看到过这种类型的功能,但从来没有遇到过它的代码。
答案 0 :(得分:2)
尝试使用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)以再次测试正确的情况。希望这会有所帮助。
答案 1 :(得分:1)
使用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,模仿失败的服务器。
更新:我修改了jsfiddle播放声音,只要声音保留在服务器上就可以了:)