本文主要是介绍在线访谈:解决jQuery异步获取数据,客户端始终不更新的问题,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
一、网页
<script type="text/javascript" language="javascript">
function getnums() {
var Ccid=$("#HiddenField1").val();
$.get("GetDataByJquery/GetList.ashx",{LbId: Ccid,nowTime:new Date().getTime()},function(msg){
var dataObj = eval("(" + msg + ")");
$("#right_body").empty();
$(dataObj["JsonStr"]).each(function(idx, item) {
var li = $("<li></li>").html("<span>"+item.codecn+":</span>"+item.Title+"<p>");
$("#right_body").append(li);
});
});
//alert("123");
}
$(document).ready(function(){
if($("#HiddenField1").val()=="")
{
location.href="index.aspx";
//alert("访谈ID有问题!");
return false;
}
else
{
setInterval(getnums, 2000);
}
});
</script>
二、GetList.ashx
<%@ WebHandler Language="C#" Class="GetList" %>using System;
using System.Web;
using System.Data;
public class GetList : IHttpHandler {public void ProcessRequest (HttpContext context) {context.Response.ContentType = "text/plain";int LbId = int.Parse(context.Request.Params["LbId"].ToString());DataSet ds = new DataSet();string returnJson = "";ds = BtBLL.GetList(LbId);returnJson = CommFun.Dt2Json(ds.Tables[0], "JsonStr");context.Response.Write(returnJson);}public bool IsReusable {get {return false;}}}
三、Dt2Json方法
public static string Dt2Json(DataTable dt, string json){StringBuilder sb = new System.Text.StringBuilder();StringWriter sw = new StringWriter(sb);using (JsonWriter jw = new JsonWriter(sw)){JsonSerializer ser = new JsonSerializer();jw.WriteStartObject();jw.WritePropertyName(json);jw.WriteStartArray();foreach (DataRow dr in dt.Rows){jw.WriteStartObject();foreach (DataColumn dc in dt.Columns){jw.WritePropertyName(dc.ColumnName);ser.Serialize(jw, dr[dc].ToString());}jw.WriteEndObject();}jw.WriteEndArray();jw.WriteEndObject();sw.Close();jw.Close();}return sb.ToString();}
因为开发的系统是完全基于jQuery开发的,所以页面也是html页面,起初感觉还很正常,但是测试的发现虽然数据是动态获取了,但是在页面上就是不更新,原来是因为缓存的问题。在同事的提醒下,在jQuery的ajax方法调用的时候传递一个动态改变的参数,比如:nowTime:new Date().getTime(),这样在获取数据时,始终都是动态变化的页面,总算是解决了这个缓存不更新的问题
这篇关于在线访谈:解决jQuery异步获取数据,客户端始终不更新的问题的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!