在线访谈:解决jQuery异步获取数据,客户端始终不更新的问题

本文主要是介绍在线访谈:解决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异步获取数据,客户端始终不更新的问题的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/895169

相关文章

Redis消息队列实现异步秒杀功能

《Redis消息队列实现异步秒杀功能》在高并发场景下,为了提高秒杀业务的性能,可将部分工作交给Redis处理,并通过异步方式执行,Redis提供了多种数据结构来实现消息队列,总结三种,本文详细介绍Re... 目录1 Redis消息队列1.1 List 结构1.2 Pub/Sub 模式1.3 Stream 结

SpringBoot内嵌Tomcat临时目录问题及解决

《SpringBoot内嵌Tomcat临时目录问题及解决》:本文主要介绍SpringBoot内嵌Tomcat临时目录问题及解决,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,... 目录SprinjavascriptgBoot内嵌Tomcat临时目录问题1.背景2.方案3.代码中配置t

SpringBoot使用GZIP压缩反回数据问题

《SpringBoot使用GZIP压缩反回数据问题》:本文主要介绍SpringBoot使用GZIP压缩反回数据问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录SpringBoot使用GZIP压缩反回数据1、初识gzip2、gzip是什么,可以干什么?3、Spr

HTML5中的Microdata与历史记录管理详解

《HTML5中的Microdata与历史记录管理详解》Microdata作为HTML5新增的一个特性,它允许开发者在HTML文档中添加更多的语义信息,以便于搜索引擎和浏览器更好地理解页面内容,本文将探... 目录html5中的Mijscrodata与历史记录管理背景简介html5中的Microdata使用M

html5的响应式布局的方法示例详解

《html5的响应式布局的方法示例详解》:本文主要介绍了HTML5中使用媒体查询和Flexbox进行响应式布局的方法,简要介绍了CSSGrid布局的基础知识和如何实现自动换行的网格布局,详细内容请阅读本文,希望能对你有所帮助... 一 使用媒体查询响应式布局        使用的参数@media这是常用的

HTML5表格语法格式详解

《HTML5表格语法格式详解》在HTML语法中,表格主要通过table、tr和td3个标签构成,本文通过实例代码讲解HTML5表格语法格式,感兴趣的朋友一起看看吧... 目录一、表格1.表格语法格式2.表格属性 3.例子二、不规则表格1.跨行2.跨列3.例子一、表格在html语法中,表格主要通过< tab

使用Python实现一个优雅的异步定时器

《使用Python实现一个优雅的异步定时器》在Python中实现定时器功能是一个常见需求,尤其是在需要周期性执行任务的场景下,本文给大家介绍了基于asyncio和threading模块,可扩展的异步定... 目录需求背景代码1. 单例事件循环的实现2. 事件循环的运行与关闭3. 定时器核心逻辑4. 启动与停

Vue3组件中getCurrentInstance()获取App实例,但是返回null的解决方案

《Vue3组件中getCurrentInstance()获取App实例,但是返回null的解决方案》:本文主要介绍Vue3组件中getCurrentInstance()获取App实例,但是返回nu... 目录vue3组件中getCurrentInstajavascriptnce()获取App实例,但是返回n

C#中async await异步关键字用法和异步的底层原理全解析

《C#中asyncawait异步关键字用法和异步的底层原理全解析》:本文主要介绍C#中asyncawait异步关键字用法和异步的底层原理全解析,本文给大家介绍的非常详细,对大家的学习或工作具有一... 目录C#异步编程一、异步编程基础二、异步方法的工作原理三、代码示例四、编译后的底层实现五、总结C#异步编程

如何解决idea的Module:‘:app‘platform‘android-32‘not found.问题

《如何解决idea的Module:‘:app‘platform‘android-32‘notfound.问题》:本文主要介绍如何解决idea的Module:‘:app‘platform‘andr... 目录idea的Module:‘:app‘pwww.chinasem.cnlatform‘android-32