优化网站设计(十五):尽可能早地发送缓冲区内容

news/2024/5/21 17:20:26/文章来源:https://blog.csdn.net/weixin_34348174/article/details/85557889

前言

网站设计的优化是一个很大的话题,有一些通用的原则,也有针对不同开发平台的一些建议。这方面的研究一直没有停止过,我在不同的场合也分享过这样的话题。

作为通用的原则,雅虎的工程师团队曾经给出过35个最佳实践。这个列表请参考  Best Practices for Speeding Up Your Web Site http://developer.yahoo.com/performance/rules.html,同时,他们还发布了一个相应的测试工具Yslow http://developer.yahoo.com/yslow/

我强烈推荐所有的网站开发人员都应该学习这些最佳实践,并结合自己的实际项目情况进行应用。 接下来的一段时间,我将结合ASP.NET这个开发平台,针对这些原则,通过一个系列文章的形式,做些讲解和演绎,以帮助大家更好地理解这些原则,并且更好地使用他们。

准备工作

为了跟随我进行后续的学习,你需要准备如下的开发环境和工具

  1. Google Chrome 或者firefox ,并且安装 Yslow这个扩展组件.请注意,这个组件是雅虎提供的,但目前没有针对IE的版本。
    1. https://chrome.google.com/webstore/detail/yslow/ninejjcohidippngpapiilnmkgllmakh
    2. https://addons.mozilla.org/en-US/firefox/addon/yslow/
    3. 你应该对这些浏览器的开发人员工具有所了解,你可以通过按下F12键调出这个工具。
  2. Visaul Studio 2010 SP1 或更高版本,推荐使用Visual Studio 2012
    1. http://www.microsoft.com/visualstudio/eng/downloads
  3. 你需要对ASP.NET的开发基本流程和核心技术有相当的了解,本系列文章很难对基础知识做普及。

本文要讨论的话题

这一篇我和大家讨论的是第十五条原则:Flush Buffer Early (尽可能早地发送缓冲区内容)。

这是一条相对简单的原则,它所涉及到的一个概念叫做缓冲区(Buffer)。我们首先来了解一下缓冲区的含义,以及相应的优点和缺点。

 

什么是缓冲?

缓冲是伴随着HTTP技术发展的一个基础概念,当我们通过一个地址请求某个在远程服务器的资源的时候,默认情况下,服务器是需要先将所请求资源的内容全部读取到内存中(这个过程就叫做缓冲),然后再一次性地发送给浏览器。

在启用缓冲这个功能的情况下,因为内容是完全准备好了才发送的,所以在响应头部中,可以明确地记录内容长度(Content-Length)

image

而如果没有启用缓冲会怎么样呢?

image

我们看到,此时在头部中是没有内容长度(Content-Length)的信息的,因为没有缓冲,所以HTTP协议规定,传输是按照“块(chunk)”的方式来进行的。所以我们就可以看到在上图中会有一个Transfer-Encoding的信息。

 

如何启用或禁用缓冲?

在ASP.NET开发中,默认所有页面都是启用缓冲的,如果需要明确地禁用缓冲,则可以修改页面的定义如下

<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="BufferResponsePage.aspx.cs" Inherits="WebApplication4.BufferResponsePage"  %>

 

如何在启用缓冲的前提下手工地分段发送缓冲区内容?

缓冲的功能,是很有意思的,就是说即便我们启用了缓冲(默认就是这样的),也可以根据需要在页面或者代码中,明确地分段发送缓冲内容。例如下面这个做法

<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="BufferResponsePage.aspx.cs" Inherits="WebApplication4.BufferResponsePage"  %><!DOCTYPE html><html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server"><title></title>
</head><!--明确地手工发送缓冲区内容,就是先将头部的内容先发送给浏览器-->
<body>这里是正文内容</body>

 

同理,既然上述做法行得通,那么在代码中也是可以调用Response.Flush方法来分段发送内容的。如果你要输出很大的一段内容的时候。

分段发送缓冲区内容的做法,可以尽量充分地利用浏览器的资源,减少闲置的时间。因为浏览器在请求页面的时候,如果页面的内容是需要完全缓冲后再返回(最起码也应该会有200毫秒左右),那么浏览器此时就会进行一个闲置状态,什么事情都不会做。

【备注】现在的浏览器已经越来越强大了,主流的几个浏览器,每个选项卡都会有独立的进程,这在性能和稳定性方面的提升也是明显的。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.luyixian.cn/news_show_794884.aspx

如若内容造成侵权/违法违规/事实不符,请联系dt猫网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

linux下memcache的安装和php使用来提高网站负载

1、memcache介绍Memcache是danga.com的一个项目&#xff0c;最早是为 LiveJournal 服务的&#xff0c;目前全世界不少人使用这个缓存项目来构建自己大负载的网站&#xff0c;来分担数据库的压力。和php的配合则需要安装一个memcached的服务端和memcache的php扩展。memcached 官…

《Python数据分析与挖掘实战》第12章——电子商务网站用户行为分析及服务推荐(协同推荐)数据探索分析篇①1 背景与目标分析2.数据探索分析

文章目录 1 背景与目标分析 2.数据探索分析 2.1 网页类型分析 2.1.1 统计各个网页类型所占的比例 2.1.2 网页107类型中的内部统计 2.1.3 统计带"?"问号网址类型统计 2.1.4 统计199类型中的具体类型占比 2.1.5 统计瞎逛用户中各个类型占比 2.2 点击次数分析 …

《Python数据分析与挖掘实战》第12章——电子商务网站用户行为分析及服务推荐(协同推荐)数据探索分析篇①1 背景与目标分析2.数据探索分析

文章目录 1 背景与目标分析 2.数据探索分析 2.1 网页类型分析 2.1.1 统计各个网页类型所占的比例 2.1.2 网页107类型中的内部统计 2.1.3 统计带"?"问号网址类型统计 2.1.4 统计199类型中的具体类型占比 2.1.5 统计瞎逛用户中各个类型占比 2.2 点击次数分析 …

如何设置SharePoint 2013 的根网站集下的“更改此术语的目标页面”

起因&#xff1a; 首先看问题截图Figure 1&#xff0c;在术语驱动的页面中设置更改此术语的目标页面&#xff0c;会被警告“该URL 不指向某个页面”&#xff0c;原因是我所找到的这个目标页面是一个非aspx结尾的URL链接。 Figure 1无法更改此术语的目标页面 而整个需要添加目标…

一个网站大概多少钱_做一个网站到底要多少钱?

做一个网站要多少钱&#xff0c;我只能说这个太泛了&#xff0c;主要影响到价格因素的是网站的复杂度&#xff0c;例如&#xff0c;如果你只是单纯做个企业官网单纯的展示企业信息以及企业的产品信息&#xff0c;那价格就很低&#xff0c;如果你要做一个功能全面的线上商城或者…

css3网站代码 html5_如何成为HTML5开发高手?

现在随着各个企业和公司对于人才的需求&#xff0c;HTML5开发工程师岗位的HTML5已经不是单指HTML5本身了&#xff0c;而是泛指HTML5、CSS3、JavaScript等前端开发技术。零基础想要转行做HTML5开发工程师的朋友需要注意这一点&#xff0c;很多零基础的初学者在学习的时候都想要成…

什么时候用转发什么时候用重定向_网站建设中什么时候用H标签?

大家好&#xff0c;我是吉礻羊。网站建设后期H标签的全称为heading标签&#xff0c;它也是所有标签中分得最细的一种&#xff0c;一共有6种&#xff0c;分别从H1到H6&#xff0c;主要就是针对性地强调某个关键词。6种不同大小的标签&#xff0c;表示6种不同的重视程度。H1到H6表…

钓鱼网站有服务器吗,网络钓鱼网站也有客服了?!

窃取Office 365凭据的网络钓鱼网站添加了实时支持&#xff0c;以增加受害者上当的可能性。但事情并不总是按照网络罪犯的意图进行&#xff0c;他们的虚张声势被研究人员发现了。实时聊天支持在欺诈世界中并不是什么新鲜事&#xff0c;它在勒索软件业务中很受网络犯罪团体的欢迎…

荷露叮咚wp建站系列视频课程.3WordPress功能菜单介绍

安装后的WordPress在E:\xampp\apps\wordpress\htdocs(历史版本有在E:\xampp\htdocs目录下的情况)&#xff0c;将E:\xampp\apps\wordpress\htdocs目录下的wordpress文件夹拷至E:\xampp\htdocs目录也是可以的。 常用功能&#xff08;按常规操作先后顺序&#xff09;&#xff1a; …

必选项:你的网站易于阅读吗?

当我们设计网站时&#xff0c;我们在想什么&#xff1f;——设计引人注目吗&#xff1f;便于理解吗&#xff1f;有品牌关联吗&#xff1f;……其实最先需要思考的是&#xff0c;文字可以被容易阅读吗&#xff1f;微软估值高达340亿美元&#xff0c;拥有着一支由设计师、研究员、…

Java裸写爬虫技术,运用多线程技术,高效爬取某个医疗机构网站数据

最近喜欢上了数据的庞大的感觉&#xff0c;就爬取了一下某个医疗机构网站医疗数据&#xff0c;由于数据量庞大&#xff0c;只爬取了江西省的各个市的各个医院的各个科室的各个科室。中各种信息。其中用的持久层技术是hibernate框架&#xff0c;和用到一些ioc技术。话不多说&…

【标准文件免费下载】国家标准和行业标准 良心网站推荐

【标准文件免费下载】国家标准和行业标准 良心网站推荐一、写在前面的话二、 良心网站推荐&#xff0c;是重点啦&#xff01;其它几个下载标准的网站&#xff1a;查询标准过期/现行/废止状态 网站&#xff1a;三、小啊呜有话说叮嘟&#xff01;这里是小啊呜的学习课程资料整理。…

【最强白嫖指南】课代表来啦:35个免费宝藏网站,你居然还不知道?!

【最强白嫖指南】课代表来啦&#xff1a;35个免费宝藏网站&#xff0c;你居然还不知道&#xff1f;&#xff01;一、写在前面的话二、重磅&#xff01;35个免费宝藏网站分享1、 照片2、 图标3、 矢量图/免抠PNG/PSD模板4、 壁纸5、 视频6、 音频7、字体8、 PPT模板三、小啊呜有…

linux环境建站环境amp,CentOS6.5服务器配置建站环境详细流程

CentOS6.5服务器配置建站环境详细流程php以前的Win主机上挂了十几个WordPress网站&#xff0c;客户广泛反映后台操做已经慢到不行。因而我租了一台新的云主机&#xff0c;此次下决心要搞定Linux 主机了&#xff0c;一样的配置&#xff0c;Linux跑WordPress确定要快很多&#xf…

网站建设公司不挣钱的原因,精辟

2019独角兽企业重金招聘Python工程师标准>>> 先说说网站建设这行的特点&#xff1a;这行处于生态链的最下游&#xff0c;利润低&#xff0c;成本却高&#xff0c;而且还是每年升高&#xff0c;因为主要是人力成本&#xff0c;回款困难&#xff0c;还要求每月持续有新…

国外最流行的几个外包接活网站 简要介绍

国外主要外包接活站点&#xff1a; No.1 Freelancer.com &#xff08;旧称GAF – GetAFreelancer&#xff09;: 国外访问人数最多&#xff0c;更新速度最快的外包平台。详细介绍 No.2 Elance : 国外比较成熟的三大业务外包平台之一&#xff0c;外包项目类型以软件和网站为主。当…

学习中收藏的网站

2019独角兽企业重金招聘Python工程师标准>>> 1.linux目录的简介 http://www.linuxidc.com/Linux/2016-08/134701.htm 2.adminlte的简单教程 http://11140372.blog.51cto.com/11130372/1907097、 3.接口页面 www.eolinker.com 4.jpa的简单操作 http://www.cnblogs.co…

建设网站内链是网站优化的重要环节

首先要熟悉什么是网站内部链接&#xff08;也称内链&#xff09;&#xff1f;简单来说即是网站建设中各个页面的相互链接和引航。做好官网内链的优化建设&#xff0c;可以提升顾客的体验&#xff0c;提高公司站点的排名竞争力。内链的作用在网站优化公司中的地位是越来越高了。…

查询网站ip地址

查询网站ip地址 还在考试&#xff0c;越到考试越不想学习&#xff0c;考了两门嗨了两天&#xff0c;一字没看&#xff0c;有点空虚。感觉还是每天要看点东西&#xff0c;最近不是特别想搞算法这块&#xff0c;想搞点其它的&#xff0c;所以最近看看网络编程这块。也算是填补一…

微软正式发布Azure Storage上的静态网站

微软正式宣布了Azure Storage上的静态网站&#xff0c;提供了从托管在Azure Storage上的HTML、CSS和JavaScript文件提供内容的能力。静态网站包含内容固定的Web页面&#xff0c;同时仍然允许利用JavaScript等客户端代码来创建丰富的用户体验。 有了这个新功能&#xff0c;继用于…