首页 > 分享 > 前端flv.js设置缓冲时间和大小

前端flv.js设置缓冲时间和大小

最新推荐文章于 2023-05-31 10:36:47 发布

于 2020-11-21 22:49:05 发布 · 3k 阅读

· 0

· 1

0eed6c5d0f352666bcd0230a8e32ea22.png

本文主要考量客户端性能、服务器端和网络性能,内容框架来自 Yahoo Developer Network,包含 7 个类别共 35 条前端性能优化最佳实践,在此基础上补充了一些相关或者更符合主流技术的内容。

同时,建议关注及时更新的 Google 性能优化指南。

1. 页面内容

1.1 减少 HTTP 请求数

Web 前端 80% 的响应时间花在图片、样式、脚本等资源下载上。浏览器对每个域名的连接数是有限制的,减少请求次数是缩短响应时间的关键。

通过简洁的设计减少页面所需资源,进而减少 HTTP 请求,这是最直接的方式,前提是你的 Boss、设计师同事不打死你。所以,还是另辟蹊径吧:

合并 JavaScript、CSS 等文件;服务器端(CDN)自动合并基于 Node.js 的文件合并工具一抓一大把使用CSS Sprite:将背景图片合并成一个文件,通过background-image 和 background-position 控制显示;Sprite CowSpritebox

逐步被 Icon Font 和 SVG Sprite 取代。

Image Map:合并图片,然后使用坐标映射不同的区域(演示))。

缺点:仅适用于相连的图片;设置坐标过程乏味且易出错;可访性问题。不推荐使用这种过时的技术。

Inline Assets:使用 Data URI scheme 将图片嵌入 HTML 或者 CSS 中;或者将 CSS、JS、图片直接嵌入 HTML 中。

会增加文件大小,也可能产生浏览器兼容及其他性能问题(有待整理补充)。

未来的趋势是使用内嵌 SVG。

内容分片,将请求划分到不同的域名上。

HTTP/2 通过多路复用大幅降低了多个请求的开销。通过数据分帧层,客户端和服务器之间只需要建立一个 TCP 连接,即可同时收发多个文件,而且,该连接在相当长的时间周期内保持打开(持久化),以便复用。 HTTP/2 的新特性意味着上述优化实践不再适用,但考虑到客户端对 HTTP/2 的支持覆盖程度,还需根据实际数据权衡。

1.2 减少 DNS 查询

用户输入 URL 以后,浏览器首先要查询域名(hostname)对应服务器的 IP 地址,一般需要耗费 20-120 毫秒 时间。DNS 查询完成之前,浏览器无法从服务器下载任何数据。

基于性能考虑,ISP、局域网、操作系统、浏览器都会有相应的 DNS 缓存机制。

IE 缓存 30 分钟,可以通过注册表中 DnsCacheTimeout 项设置;Firefox 混存 1 分钟,通过 network.dnsCacheExpiration 配置;(TODO:补充其他浏览器缓存信息) 首次访问、没有相应的 DNS 缓存时,域名越多,查询时间越长。所以应尽量减少域名数量。但基于并行下载考虑,把资源分布到 2 个域名上(最多不超过 4 个)。这是减少 DNS 查询同时保证并行下载的折衷方案。1.3 避免重定向

HTTP 重定向通过 301/302 状态码实现。

HTTP/1.1 301 Moved PermanentlyLocation: http://example.com/newuriContent-Type: text/html

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

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

最浪费的重定向经常发生、而且很容易被忽略:URL 末尾应该添加 / 但未添加。比如,访问 http://astrology.yahoo.com/astrology 将被 301 重定向到 http://astrology.yahoo.com/astrology/(注意末尾的 /)。如果使用 Apache,可以通过 Alias 或 mod_rewrite 或 DirectorySlash 解决这个问题。网站域名变更:CNAME 结合 Alias 或 mod_rewrite 或者其他服务器类似功能实现跳转。1.4 缓存 Ajax 请求

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

最重要的的优化方式是缓存响应结果,详见 添加 Expires 或 Cache-Control 响应头。

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

启用 Gzip减少 DNS 查询压缩 JavaScript 和 CSS避免重定向配置 Etag1.5 延迟加载

这里可以看文章: 详解懒加载和预加载(js)

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

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

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

延迟渲染 将首屏以外的 HTML 放在不渲染的元素中,如隐藏的,或者 type 属性为非执行脚本的

相关知识

冬季大棚如何通风,首先在通风处设置好缓冲膜
前端开发技术
前端开发是什么
bootstarp 的表单控件大小设置和class='form
前端性能优化:提升网站加载速度的终极指南
前端移动端适配方案
前端移动端web开发(一)
HTML5前端开发是做什么的?HTML5前端开发前景浅析
前端开发需要学习什么?
植物组织培养实验室的基本设置

网址: 前端flv.js设置缓冲时间和大小 https://m.huajiangbk.com/newsview2537192.html

所属分类:花卉
上一篇: 链接建设指南:详解关键技术和最佳
下一篇: 昌邑SEO谈seo优化最佳实践