【发布时间】:2018-05-28 06:23:43
【问题描述】:
我有一个 div 部分。我想每 5 秒重新加载此部分。我该怎么做呢。这是我的代码:
<script>
$("#send_parent_general_chat").submit(function()
{
var rec = $("#data").val();
var msg = $("#msg").val();
var dataString = 'rec='+ rec + '&msg='+ msg;
$.ajax({
type: "POST",
url: "<?php echo base_url(); ?>" + "Client/send_general_parent_chat_msg/<?php echo $per_job->id;?>",
data: dataString,
cache: false,
success: function(result){
$('#display_general_msg').html(result);
$('#send_parent_general_chat')[0].reset(); //form reset
}
});
return false;
});
</script>
<script>
$(document).ready(function(){
setInterval(function(){
// alert("===111==");
$("#display_general_msg").load('<?php echo base_url(); ?>" + "Client/refresh_general_parent_chat_msg/<?php echo $per_job->id;?>')
}, 5000);
});
</script>
我又创建了一个控制器来刷新 div 我使用了时间间隔功能但它没有加载,它显示了这个错误:
禁止访问! 您无权访问请求的对象。它要么是读保护的,要么是服务器不可读的。 如果您认为这是服务器错误,请联系网站管理员。 错误 403 我只需要刷新 div 内容而不是整个页面。 我如何做到这一点?
【问题讨论】:
-
我建议将 websockets 用于此类应用程序。它将保护您的服务器和所有用户的大量网络流量。
-
由于您的任务处理的时间间隔很短,因此可能会占用大量 CPU。我建议在这种情况下使用 setTimeout 而不是 setInterval
-
首先通过在浏览器中输入url来检查给定的url是否正常打开。
-
使用 websockets 将是最好的方法,因为它与服务器有持久连接。