使用jquery自动刷新div的内容

使用jquery自动刷新div的内容,jquery,html,json,coldfusion,cfquery,Jquery,Html,Json,Coldfusion,Cfquery,我有一个div,它执行数据库查询并用内容填充div 我希望能够每x秒刷新一次div,以便它显示任何新内容 <div id="chatText" class="chatText"> <cfquery name="GetChatConversation" datasource="#request.FlintHost#" dbtype="ODBC"> SELECT * FROM tbl_ChatConversation WHERE

我有一个div,它执行数据库查询并用内容填充div

我希望能够每x秒刷新一次div,以便它显示任何新内容

<div id="chatText" class="chatText">

<cfquery name="GetChatConversation" datasource="#request.FlintHost#" dbtype="ODBC">
    SELECT  *
    FROM        tbl_ChatConversation
    WHERE   int_ChatID = #url.int_ChatID#
</cfquery>

<cfoutput query="GetChatConversation">
    #str_Name# :#str_Content#<br />
</cfoutput>
</div>
我有以下代码刷新div,但将整个页面插入div,而不是仅仅刷新内容

<script type="text/javascript">
setInterval("my_function();",5000); 
function my_function()
    {
  $('#chatText').load('');
}
</script>
你有什么办法让它工作吗

谢谢


Paul

我会将您希望显示在div中的代码放在一个单独的文件中,具体操作方法由您决定。我已经在这个测试中使用了PHP,它确实有效

然后,对于您的页面和javascript:

<div id="chatText" class="chatText"></div>

    <script type="text/javascript">
        setInterval("my_function();",5000); 
        function my_function() {
            $('#chatText').load('link to the external file');
        }
    </script>

这刚刚刷新了我的DIV。另一种方法是可以使用一些ajax方法,但是上面的方法应该可以工作。

您必须有两个单独的文件。包含聊天的文件和生成聊天内容的文件。然后,您可以通过首次加载聊天或使用setTimeout函数以递归方式重新加载数据来加载内容,以每5000ms刷新一次文件

这是一种既快又脏的方法。我建议您使用JSON获取数据,并使用更好的方式显示数据,如使用datatables

File1.cfm

<div id="chat">
</div>
<script>
    var loadChat = function(){
        $("#chat").load(file2.cfm);
    }
    var refreshChat = function(){
        setTimeout(function(){
            loadChat();
            refreshChat();
        ,5000);
    }
    $(document).on('ready',function(){
        loadChat();
        refreshChat();
    });
</script>
文件2有你的内容

file2.cfm

<cfquery name="GetChatConversation" datasource="#request.FlintHost#" dbtype="ODBC">
    SELECT  *
    FROM        tbl_ChatConversation
    WHERE   int_ChatID = #url.int_ChatID#
</cfquery>

<cfoutput query="GetChatConversation">
     #str_Name# :#str_Content#<br />
</cfoutput>

socket.io。看看第一句话中提到的代码必须包含查询。不再需要递归setTimeout调用。
<cfquery name="GetChatConversation" datasource="#request.FlintHost#" dbtype="ODBC">
    SELECT  *
    FROM        tbl_ChatConversation
    WHERE   int_ChatID = #url.int_ChatID#
</cfquery>

<cfoutput query="GetChatConversation">
     #str_Name# :#str_Content#<br />
</cfoutput>