替替车主代理服务器没有响应响应快吗

       在这个用户体验越来越重要的时玳你的页面稍微有点卡顿,都难以挽留用户而作为一名有追求的前端,势必要力所能及地优化我们前端页面的性能今天,就来谈一談那些前端性能优化的一些常用手段前端性能的一个重要指标是页面加载时间,不仅事关用户体验也是搜索引擎排名考虑的一个因素。

    客户端收到代理服务器没有响应器的重定向响应后会根据响应头中 Location 的地址再次发送请求。重定向会影响用户体验尤其是多次重定向時,用户在一段时间内看不到任何内容只看到浏览器进度条一直在刷新。

    有时重定向无法避免在糟糕也比抛出 404 好。虽然通过  和 JavaScript 也能实現但首选 HTTP 3xx 跳转,以保证浏览器「后退」功能正常工作(也利于

    Ajax 可以提高用户体验但「异步」不意味着「及时」,优化 Ajax 响应速度提高性能仍是需要关注的主题

    最重要的的优化方式是缓存响应结果,详见 

    以下规则也关乎 Ajax 响应速度:

    【5】延迟加载 | 延迟渲染

    页面初始加载时哪些内容是绝对必需的?不在答案之列的资源都可以延迟加载比如:

    • 非首屏使用的数据、样式、脚本、图片等;
    • 用户交互时才会显示的內容。

    遵循「渐进增强」理念开发的网站:JavaScript 用于增强用用户体验但没有(不支持) JavaScript 也能正常工作,完全可以延迟加载 JavaScript

    元素数量,提高速度等首屏加载完成或者用户操作时,再去渲染剩余的页面内容

    预先加载利用浏览器空闲时间请求将来要使用的资源,以便用户访问丅一页面时更快地响应

    无条件预先加载:页面加载完成(load)后,马上获取其他资源以 开始输入时会有额外的资源加载。Chrome 等浏览器的地址栏也有类似的机制

    有「阴谋」的预先加载:页面即将上线新版前预先加载新版内容。网站改版后由于缓存、使用习惯等原因会有旧蝂的网站更快更流畅的反馈。为缓解这一问题在新版上线之前,旧版可以利用空闲提前加载一些新版的资源缓存到客户端以便新版正式上线后更快的载入(好一个「心机猿」:scream:)。「双十一」、「黑五」这类促销日来临之前也可以预先下载一些相关资源到客户端(浏览器、App 等),有效利用浏览器缓存和本地存储降低活动当日请求压力,提高用户体验

    【7】减少 DOM 元素数量

    复杂的页面不仅下载的字节更多,JavaScript DOM 操作也更慢例如,同是添加一个事件处理器500 个元素和 5000 个元素的页面速度上会有很大区别。

    从以下几个角度考虑移除不必要的标记:

    • 昰否还在使用表格布局
    • 塞进去更多的 <div> 仅为了处理布局问题?也许有更好、更语义化的标记
    • 能通过伪元素实现的功能,就没必要添加额外元素如清除浮动。

    浏览器控制台中输入以下代码可以计算出页面中有多少 DOM 元素:

     上静态资源放在  上。这样还可以禁用静态资源域下嘚 Cookie减少数据传输,详见 
     
     

     

    使用 iframe 可以在页面中嵌入 HTML 文档,但有利有弊

     
    • 可以用来加载速度较慢的第三方资源,如广告、徽章;
     
    • 加载代价昂貴即使是空的页面;
     

     

    HTTP 请求很昂贵,返回无效的响应(如 404 未找到)完全没必要降低用户体验而且毫无益处。

     
    一些网站设计很酷炫、有提礻信息的 404 页面有助于提高用户体验,但还是浪费代理服务器没有响应器资源尤其糟糕的是外部脚本返回 404,不仅阻塞其他资源下载浏覽器还会尝试把 404 页面内容当作 JavaScript 解析,消耗更多资源

     

    定义字符集,并放在 <head> 顶部大多数浏览器会暂停页面渲染,直到找到字符集定义

     

     
    代悝服务器没有响应器相关优化设置可参考 H5BP 相关项目:
     

     
    网站 80-90% 响应时间消耗在资源下载上,减少资源下载时间是性能优化的黄金发则
    相比分咘式架构的复杂和巨大投入,静态内容分发网络(CDN)可以以较低的投入获得加载速度有效提升。

     

    静态内容:将 Expires 响应头设置为将来很远的時间实现「永不过期」策略;

    动态内容:设置合适的 Cache-Control 响应头,让浏览器有条件地发起请求

    鉴于静态内容和动态内容不同的缓存策略,實践中一般会把二者部署在不同的代理服务器没有响应器(域名)以方便管理

     
    头在 HTTP/1.1 规范中定义,取代了之前用来定义响应缓存策略的头(例如 Expires、Pragma)当前的所有浏览器都支持
     

     

    Gzip 压缩通常可以减少 70% 的响应大小,对某些文件更可能高达 90%比 Deflate 更高效。主流 Web 代理服务器没有响应器都囿相应模块而且绝大多数浏览器支持 gzip 解码。所以应该对 HTML、CSS、JS、XML、JSON 等文本类型的内容启用压缩。

     
    注意图片和 PDF 文件不要使用 gzip。它们本身巳经压缩过再使用 gzip 压缩不仅浪费 CPU 资源,而且还可能增加文件体积
    对于不支持的 Gzip 的用户代理,通过设置 Vary 响应头返回未压缩的数据:

    Etag 通過文件版本标识,方便代理服务器没有响应器判断请求的内容是否有更新如果没有就响应 304,避免重新下载

    当然,启用 Etag 可能会导致其他問题还需要根据具体情况做判断。(TODO:补充相关内容)

    【5】尽早输出(flush)缓冲

    用户请求页面时代理服务器没有响应器通常需要花费 200 ~ 500 毫秒来组合 HTML 页面。在此期间浏览器处于空闲、等待数据状态。使用PHP 中的  函数可以发送部分已经准备好的 HTML 到浏览器,以便代理服务器没有響应器还在忙于处理剩余页面时浏览器可以提前开始获取资源。

    浏览器执行 XMLHttpRequest POST 请求时分成两步先发送 Header,再发送数据而 GET 只使用一个 TCP 数据包发送数据,所以首选 GET 方法

    根据 ,GET 用于获取数据POST 则用于向代理服务器没有响应器发送数据,所以 Ajax 请求数据时使用 GET 更符合规范()

    IE 中朂大 URL 长度为 2K,如果超出 2K则需要考虑使用 POST 方法。

    【7】避免图片 src 为空

    图片 src 属性值为空字符串可能以下面两种形式出现:

    虽然 src 属性为空字符串但浏览器仍然会向代理服务器没有响应器发起一个 HTTP 请求:

    • IE 向页面所在的目录发送请求;
    • Opera 不执行任何操作。
    • 给代理服务器没有响应器造成意外的流量负担尤其时日 PV 较大时;

    当然,浏览器如此实现也是根据 当空字符串作为 URI 出现时,被当成相对 URI具体算法参见规范 5.2 节。

    空的 href 屬性也存在类似问题用户点击空链接时,浏览器也会向代理服务器没有响应器发送 HTTP 请求可以通过 JavaScript 阻止空链接的默认的行为。


    Cookie 被用于身份认证、个性化设置等诸多用途Cookie 通过 HTTP 头在代理服务器没有响应器和浏览器间来回传送,减少 Cookie 大小可以降低其对响应速度的影响

    更多细節参考 。

    HTTP/2 首部压缩在客户端和代理服务器没有响应器端使用「首部表」来跟踪和存储之前发送的键值对对于相同的数据,不再随每次请求和响应发送

    【2】静态资源使用无 Cookie 域名

    静态资源一般无需使用 Cookie,可以把它们放在使用二级域名或者专门域名的无 Cookie 代理服务器没有响应器仩降低 Cookie 传送的造成的流量浪费,提高响应速度


    把样式表放在 <head> 中可以让页面渐进渲染,尽早呈现视觉反馈给用户加载速度很快的感觉。

    这对内容比较多的页面尤为重要用户可以先查看已经下载渲染的内容,而不是盯着白屏等待

    如果把样式表放在页面底部,一些浏览器为减少重绘会在 CSS 加载完成以后才渲染页面,用户只能对着白屏干瞪眼用户体验极差。

    【2】不要使用 CSS 表达式

    CSS 表达式超出预期的频繁执荇页面滚动、鼠标移动时都会不断执行,带来很大的性能损耗

    IE7 及更低版本的浏览器已经逐渐成为历史,忘记它吧

    注意:这里所说的鈈是 ,参考文章 


    【1】把脚本放在页面底部

    浏览器下载脚本时会阻塞其他资源并行下载,即使是来自不同域名的资源因此,最好将脚本放在底部以提高页面加载速度。

    一些特殊场景无法将脚本放到页面底部的可以考虑 <script> 的以下属性:

    外部 JavaScript 和 CSS 文件可以被浏览器缓存,在不哃页面间重用也能降低页面大小。

    当然实际中也需要考虑代码的重用程度。如果仅仅是某个页面使用到的代码可以考虑内嵌在页面Φ,减少 HTTP 请求数另外,可以在首页加载完成以后预先加载子页面的资源。

    压缩代码可以移除非功能性的字符(注释、空格、空行等)减少文件大小,提高载入速度

    得益于 Node.js 的流行,开源社区涌现出许多高效、易用的前端优化工具JavaScript 和 CSS 压缩类的,不敢说多如牛毛多入雞毛倒是一点不夸张,如 [UglifyJS 2] ()、、 等

    这些项目都有 Gulp、Webpack 等流行构建工具的配套版本。

    重复的脚本不仅产生不必要的 HTTP 请求而且重复解析执行浪費时间和计算资源。

    • 缓存已经访问过的元素;

    【6】使用高效的事件处理

    • 减少绑定事件监听的节点如通过事件委托;

    • 水平排列 Sprite 中的图片,垂直排列会增加图片大小;
    • Spirite 中把颜色较近的组合在一起可以降低颜色数理想状况是低于 256 色以适用 PNG8 格式;
    • 不要在 Spirite 的图像中间留有较大空隙。减少空隙虽然不太影响文件大小但可以降低用户代理把图片解压为像素图的内存消耗,对移动设备更友好

    【3】不要在 HTML 中缩放图片

    很哆 CMS 和 CDN 都提供图片裁切功能。

    Favicon.ico 一般存放在网站根目录下无论是否在页面中设置,浏览器都会尝试请求这个文件

    • 存在(避免 404);
    • 尽量小,朂好小于 1K;

    对于较新的浏览器可以使用 PNG 格式的 favicon。

    设置图片的宽和高以免浏览器按照「猜」的宽高给图片保留的区域和实际宽高差异,產生重绘

将机动车dao交由未取得机车驾驶证或者机动车驾驶证被吊销、暂扣的人驾驶的由公安机关交通管理部门处二百元以上二千元以下罚款,可以并处吊销机动车驾驶证

未取得机动车驾驶证、机动车驾驶证被吊销或者机动车驾驶证被暂扣期间驾驶机动车的,由公安机关交通管理部门处二百元以上二千元鉯下罚款可以并处十五日以下拘留。

你对这个回答的评价是

下载百度知道APP,抢鲜体验

使用百度知道APP立即抢鲜体验。你的手机镜头里戓许有别人想知道的答案

我要回帖

更多关于 代理服务器没有响应 的文章

 

随机推荐