ajax请求到的数据,用$.each循环添加到dom中,为什么数据需要刷新才能显示出来,怎样才能直接显示?

ajax请求到的数据,用$.each循环添加到dom中,为什么数据需要刷新才能显示出来,怎样才能直接显示?,第1张

刷新显示那是页面接收到的数据已经变了,和 ajax 没关系。

局部刷新就是通过 ajax 拿到最新数据后,通过 js 把数据显示。

你这里没显示的问题一步一步找 bug 出在哪里:

回调是否有问题,看console

变量拼装后是否有问题,输出 fragment 看看

再看 append 的位置是否正确

如果还没找到问题,那看看是否 css 的问题造成。

ajax局部刷新

<script>

setInterval("refreshTime()",1000)//每格1秒刷新一次

funciton refreshTime()

{

var dateObj = new Date()

time.innerHTML = dateObj.toLocaleDateString()//刷新div里面的内容

}

</script>

<div id=time></div>

----------------------------------------------------------------------------------------------------------------

function doRef()

{

var url = "xxx.aspx"

var dateRequest = new ActiveXObject("Microsoft.XMLHTTP")

dateRequest.abort()

dateRequest.open( "GET", url , true )

dateRequest.onreadystatechange = onSendSelf

dateRequest.send()

function onSendSelf()

{

if( dateRequest.readyState != 4 )

{

return

}

var theDate = dateRequest.responseText //如果出现编码问题,可以在服务端escape一下,然后在这里使用unescape( responseText )

theDiv.innerHTML = theDate

}

}

setInterval( doRef , 1000 ) //1秒刷新一次,有点快

------------------------------------------------------------------------------------------------------------------

<form id="form1" runat="server">

<asp:ScriptManager ID="ScriptManager1" runat="server">

</asp:ScriptManager>

<br />

<asp:UpdatePanel ID="UpdatePanel1" runat="server">

<ContentTemplate>

<asp:Timer ID="Timer1" runat="server" Interval="1000" OnTick="Timer1_Tick">

</asp:Timer>

<asp:TextBox ID="TextBox1" runat="server"></asp:TextBox>

</ContentTemplate>

</asp:UpdatePanel>

</form>

=====在后台Timer1_Tick事件加上

// Interval="1000" 是设置刷新的时间间隔

TextBox1.Text=DateTime.Now

看下就明白了


欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/bake/11500840.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-16
下一篇 2023-05-16

发表评论

登录后才能评论

评论列表(0条)

保存