前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >页面分部分加载呈现收集(不断更新中)

页面分部分加载呈现收集(不断更新中)

作者头像
^_^肥仔John
发布2018-01-18 11:27:29
1.2K0
发布2018-01-18 11:27:29
举报
文章被收录于专栏:偏前端工程师的驿站

前言                                   

  因项目首页内容多,每次点击都会有一段画面空白的时间,使用感不好,于是找找看有没有好方法。这里就把收集到的方法记录下来,供以后查阅。本篇只有开始没有结束,会不断地添加内容。^_^

目录                                   

1.使用Response.Flush(),有多少输出多少                 

  默认情况下Asp.net页面是启动了Response的输出缓存,那么全部输出的内容都先存储在输出缓存中,当服务器对请求处理完后再把输出缓存的内容一次性向客户端发送。如果禁用输出缓存,那么响应流中的数据会马上传送到客户端,通过Respose.Buffer=false来设定,但禁用输出缓存会引起性能上的问题。如果想分部分发送响应内容和控制输出缓存内容的具体发送时刻,可以在启用response输出缓存下调用Response.Flush(),该方法就是把当前输出缓存中的内容向客户端发送。

  针对asp.net要注意一点,除非使用了Response.Write()和Response.WriteLine()等直接把内容写到响应流中外,在Render事件之前的任何操作内容都还没写到Response中。也就是说aspx页面上的html等,和aspx.cs文件中添加到控件树的内容在Render事件之前还没写入Response中。下面是验证的例子:

aspx文件:

代码语言:javascript
复制
1 <%@ Page Language="C#" AutoEventWireup="true" CodeBehind="FlushTest.aspx.cs" Inherits="Client.FlushTest" %>
2 <div style="color:Yellow">aspx file</div>

aspx.cs文件:

代码语言:javascript
复制
1  public partial class FlushTest : System.Web.UI.Page
2     {
3         protected void Page_Load(object sender, EventArgs e)
4         {
5             Response.Write("<div style='color:red'>Response.Write before flush</div>");
6             Response.Flush();
7             Response.Write("<div style='color:blue'>Response.Write after flush</div>");
8         }
9     }

结果:

所以对于Asp.net来说这招不太使用。加上使用该方法和把页面缓存buffer设为false都会出现

“/”应用程序中的服务器错误。 会话状态已创建一个会话 ID,但由于响应已被应用程序刷新而无法保存它。 说明: 执行当前 Web 请求期间,出现未处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。 异常详细信息: System.Web.HttpException: 会话状态已创建一个会话 ID,但由于响应已被应用程序刷新而无法保存它。

 的问题,解决方法是加一个Global.asax文件就ok了。具体为什么我还没找到答案。。。。。

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2012-02-10 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
对象存储
对象存储(Cloud Object Storage,COS)是由腾讯云推出的无目录层次结构、无数据格式限制,可容纳海量数据且支持 HTTP/HTTPS 协议访问的分布式存储服务。腾讯云 COS 的存储桶空间无容量上限,无需分区管理,适用于 CDN 数据分发、数据万象处理或大数据计算与分析的数据湖等多种场景。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档