Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/74.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何在给定时间后重新加载网页的一部分?_Javascript_Html_Ajax - Fatal编程技术网

Javascript 如何在给定时间后重新加载网页的一部分?

Javascript 如何在给定时间后重新加载网页的一部分?,javascript,html,ajax,Javascript,Html,Ajax,我想做的是,根据特定条件显示消息。 因此,我将在给定时间后连续读取数据库,并相应地向用户显示消息。 但是我希望消息只在页面的一部分更新(比如DIV) 任何帮助都将不胜感激! 谢谢 如果希望定期请求内容并使用AJAX响应更新DIV的内容,可以使用setInterval,例如: setInterval(makeRequestAndPopulateDiv, "5000"); // 5 seconds setInterval()方法将继续调用该函数,直到调用clearInterval()为止 如果您使

我想做的是,根据特定条件显示消息。 因此,我将在给定时间后连续读取数据库,并相应地向用户显示消息。 但是我希望消息只在页面的一部分更新(比如DIV)

任何帮助都将不胜感激!
谢谢

如果希望定期请求内容并使用AJAX响应更新DIV的内容,可以使用setInterval,例如:

setInterval(makeRequestAndPopulateDiv, "5000"); // 5 seconds
setInterval()方法将继续调用该函数,直到调用clearInterval()为止

如果您使用的是JS库,则可以非常轻松地更新DIV,例如,在中,您可以在DIV上使用replace,例如


$('yourDiv')。替换(“您的新内容”)

如果希望从数据库加载数据并在当前加载的页面上显示数据而不加载页面,则需要ajax解决方案

<script type="text/javascript" language="javascript" src="  JQUERY LIBRARY FILE PATH"></script>
<script type="text/javascript" language="javascript">
    var init;
    $(document).ready(function(){
        init = window.setInterval('call()',5000);// 5000 is milisecond
    });

    function call(){
        $.ajax({
            url:'your server file name',
            type:'post',
            dataType:'html',
            success:function(msg){
                $('div#xyz').html(msg);// #xyz id of your div in which you want place result
            },
            error:function(){
                alert('Error in loading...');
            }
        });
    }
</script>

var-init;
$(文档).ready(函数(){
init=window.setInterval('call()',5000);//5000是毫秒
});
函数调用(){
$.ajax({
url:“您的服务器文件名”,
类型:'post',
数据类型:'html',
成功:功能(msg){
$('div#xyz').html(msg);/#xyz要将结果放入其中的div的id
},
错误:函数(){
警报('加载错误…');
}
});
}
这可以使用和

下面的示例将每隔5秒用另一个文件的内容刷新ID为result的div:

setInterval(function(){
   $('#result').load('test.html');
}, 5000);

我并不是说我的方法是最好的,但我通常会采用以下方法来处理需要访问数据库的动态内容:

1-根据给定上下文获取消息的服务器端脚本,我们称之为“contextmsg.php”。

<?php
$ctx = intval($_POST["ctx"]);
$msg = getMessageFromDatabase($ctx); // get the message according to $ctx number
echo $msg;
?>
希望这有帮助:)

可能重复:
var DIV_ID = "div-message";
var INTERVAL_IN_SECONDS = 5;

setInterval(function() {
    updateMessage(currentContext)
}, INTERVAL_IN_SECONDS*1000);

function updateMessage(ctx) {
    _e(DIV_ID).innerHTML = getMessage(ctx);
}

function getMessage(ctx) {
    var msg = null;
    $.ajax({
        type: "post",
        url: "contextmsg.php",
        data: {
            "ctx": ctx
        },
        success: function(data) {
            msg = data.responseText;
        },
        dataType: "json"
    });
    return msg;
}

function _e(id) {
    return document.getElementById(id);
}