两种服务端向客户端静态页写数据的方式

如果能在静态页中通过javascript加载一些动态数据,对这些数据做些缓存,相信会对页面访问速度有很大提高。

我这里试了两种方式,不知道大家还有没有更好的方式,欢迎指教。

方式一:数据放入服务器显示文本控件,更改控件文本输出方式

我这里用的 

<asp:Literal runat="server" ID="ltlContent"></asp:Literal>

 拼接显示内容foreach (DataRow dr in ds.Tables[0].Rows)

 {
      string leaveWordContent = ( string)dr[ " QuestionContent "];
     cacheContent +=  string.Format( " document.write(\"<li><a target='_blank' href='../LeaveWord/ShowLeaveWord.aspx?ID={0}' title='{1}' >{2}</a></li> \"); ", ( int)dr[ " ID "], leaveWordContent, (leaveWordContent.Length >  13 ? leaveWordContent.Substring( 013) : leaveWordContent));
}

 缓存处理

  // 保存到缓存

            this.Context.Cache.Insert("LeaveWordListBlock", cacheContent, null, DateTime.Now.AddMinutes(30), TimeSpan.Zero);

对于这个缓存时间我一直把握不到设置多少比较合适,对于一个信息显示网站来说。

最后更改控件输出方式

View Code 

方式二:Ajax请求json数据。

请求处理数据

$( function () {
     var jqxhr = $.ajax({
        url: "../AjaxControls/getHotLeaveWord.ashx",
        data: { ListSize: 8 },
        type: "post",
        dataType: "json"
    })
    .success( function (data) {
         var showHtml = "";
         if (data.result == "ok") {
             var array = data.listContent;
             for ( var i = 0; i < array.length; i++) {
                 var showStr = array[i].Content.length > 13 ? array[i].Content.substr(0, 13) : array[i].Content;
                showHtml += "<li><a target='_blank' href='../LeaveWord/ShowLeaveWord.aspx?ID=" + array[i].ID + "' title='" + array[i].Content + "' >" + showStr + "</a></li>";
            }
        }
         else {
            showHtml = "<li>暂时没有满足条件的数据</li>";
        }
        $('#ulList').html(showHtml);
    })
    .error( function () { $('#ulList').html("<li>请求数据错误</li>"); })

}); 

相应请求 一般处理文件中getHotLeaveWord.ashx

List<LeaveWordContent> listContent =  new List<LeaveWordContent>();
                 for ( int i = 0; i < ds.Tables[0].Rows.Count; i++)
                {
                    LeaveWordContent leaveWordContent =  new LeaveWordContent();
                    leaveWordContent.ID = ( int)ds.Tables[0].Rows[i]["ID"];
                    leaveWordContent.Content = (string)ds.Tables[0].Rows[i]["QuestionContent"];
                    listContent.Add(leaveWordContent);
                }
                HotLeaveWord hotLeaveWord =  new HotLeaveWord();
                hotLeaveWord.result = "ok";
                hotLeaveWord.listContent = listContent;

                cacheContent = Newtonsoft.Json.JavaScriptConvert.SerializeObject(hotLeaveWord); 

记得

 //缓存 略.... 

context.Response.ContentType = "text/json";
context.Response.Write(cacheContent);

转载于:https://www.cnblogs.com/wellma/archive/2011/10/25/2223427.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值