• 软件接口设计怎么做?前后端分离软件接口设计思路

    [置顶]软件接口设计怎么做?前后端分离软件接口设计思路

    API接口管理 2022-09-21

    本文关于软件接口设计怎么做?前后端分离软件接口设计思路。好的系统架构离不开好的接口设计,因此,真正懂接口设计的人往往是软件设计队伍中的稀缺型人才。为什么在接口制定标准中说:一流的企业做标准,二流的企业...

  • 接口管理如何做?接口实现版本管理的意义和最佳方法

    [置顶]接口管理如何做?接口实现版本管理的意义和最佳方法

    API接口管理 2022-10-27

    本文关于接口管理如何做?接口实现版本管理的意义和最佳方法。API版本管理的重要性不言而喻,对于API的设计者和使用者而言,版本管理都有着非常重要的意义。下面会从WEB API 版本管理的角度提供几种常...

  • 实现API管理系统的关键

    [置顶]实现API管理系统的关键

    API接口管理 2023-06-16

    下面将通过几个关键词的形式说明API管理的重要性和未来的实现方式。1.生命周期管理在整个API生命周期中更深入地集成所有工具将进一步提高生命周期循环的速度,而且更重要的是提供满足消费者需求的API。这...

  • JavaScript是如何工作的:内存管理 + 如何处理4个常见的内存泄露(js 内存管理)

    JavaScript是如何工作的:内存管理 + 如何处理4个常见的内存泄露(js 内存管理)

    API接口管理 2022-06-12

    几周前,我们开始写一个系列,深入探讨JavaScript和它的工作原理。我们认为了解JavaScript的构成以及它们如何协作,有助于编写出更好的代码和应用程序。本系列第一篇重点介绍了引擎、运行时、调...

  • 利用 javascript 实现富文本编辑器

    利用 javascript 实现富文本编辑器

    API接口管理 2022-06-12

    近期项目中需要开发一个兼容PC和移动端的富文本编辑器,其中包含了一些特殊的定制功能。考察了下现有的js富文本编辑器,桌面端的很多,移动端的几乎没有。桌面端以UEditor为代表。但是我们并不打算考虑兼...

  • Vue 升级小记(vue响应式原理)

    Vue 升级小记(vue响应式原理)

    API接口管理 2022-06-12

    Vue 升级小记最近接手了一个 Vue 1.0 的陈年老项目,需要将其升级到Vue 2.0。下面记录一下升级过程:安装迁移工具首先需要安装 vue-migration-helper CLI 工具:控制...

  • 开发更好用的 JavaScript 模块(好用的开发软件)

    开发更好用的 JavaScript 模块(好用的开发软件)

    API接口管理 2022-06-12

    不少人都曾经在 npm 上发布过自己开发的 JavaScript 模块,而在使用一些模块的过程中,我经常产生“这个模块很有用,但如果能 xxx 就更好了”的想法。所以,本文将站在模块使用者的角度总结一...

  • photo

    点击链接

    5.为 HTML 指定 Cache-Control 或 Expires

    为 HTML 内容设置 Cache-Control 或 Expires 可以将 HTML 内容缓存起来,避免频繁向服务器端发送请求。前面讲到,在页面 Cache-Control 或 Expires 头部有效时,浏览器将直接从缓存中读取内容,不向服务器端发送请求。

    6.合理设置 Etag 和 Last-Modified

    合理设置 Etag 和 Last-Modified 使用浏览器缓存,对于未修改的文件,静态资源服务器会向浏览器端返回304,让浏览器从缓存中读取文件,减少 Web 资源下载的带宽消耗并降低服务器负载。

    7.减少页面重定向

    页面每次重定向都会延长页面内容返回的等待延时,一次重定向大约需要200毫秒不等的时间开销(无缓存),为了保证用户尽快看到页面内容,要尽量避免页面重定向。

    8.使用静态资源分域存放来增加下载并行数

    浏览器在同一时刻向同一个域名请求文件的并行下载数是有限的,因此可以利用多个域名的主机来存放不同的静态资源,增大页面加载时资源的并行下载数,缩短页面资源加载的时间。通常根据多个域名来分别存储 JavaScript、CSS 和图片文件。

    ...

    9.使用静态资源 CDN 来存储文件

    如果条件允许,可以利用 CDN 网络加快同一个地理区域内重复静态资源文件的响应下载速度,缩短资源请求时间。

    10.使用 CDN Combo 下载传输内容

    CDN Combo 是在 CDN 服务器端将多个文件请求打包成一个文件的形式来返回的技术,这样可以实现 HTTP 连接传输的一次性复用,减少浏览器的 HTTP 请求数,加快资源下载速度。例如同一个域名 CDN 服务器上的 a.js,b.js,c.js 就可以按如下方式在一个请求中下载。

    11.使用可缓存的 AJAX

    对于返回内容相同的请求,没必要每次都直接从服务端拉取,合理使用 AJAX 缓存能加快 AJAX 响应速度并减轻服务器压力。

    $.ajax({

    url : url,

    type : 'get',

    cache : true, //推荐使用缓存

    data : {},

    success (){//...},

    error (){//...}

    });

    12.使用 GET 来完成 AJAX 请求

    使用 XMLHttpRequest 时,浏览器中的 POST 方法会发起两次 TCP 数据包传输,首先发送文件头,然后发送 HTTP 正文数据。而使用 GET 时只发送头部,所以在拉取服务端数据时使用 GET 请求效率更高。

    $.ajax({

    url : url,

    type : 'get', //推荐使用get完成请求

    data : {},

    success (){//...},

    error(){//...}

    });

    13.减少 Cookie 的大小并进行 Cookie 隔离

    HTTP 请求通常默认带上浏览器端的 Cookie 一起发送给服务器,所以在非必要的情况下,要尽量减少 Cookie 来减小 HTTP 请求的大小。对于静态资源,尽量使用不同的域名来存放,因为 Cookie 默认是不能跨域的,这样就做到了不同域名下静态资源请求的 Cookie 隔离。

    14.缩小 favicon.ico 并缓存

    有利于 favicon.ico 的重复加载,因为一般一个 Web 应用的 favicon.ico 是很少改变的。

    15.推荐使用异步 JavaScript 资源

    异步的 JavaScript 资源不会阻塞文档解析,所以允许在浏览器中优先渲染页面,延后加载脚本执行。例如 JavaScript 的引用可以如下设置,也可以使用模块化加载机制来实现。

    使用 async 时,加载和渲染后续文档元素的过程和 main.js 的加载与执行是并行的。使用 defer 时,加载后续文档元素的过程和 main.js 的加载是并行的,但是 main.js 的执行要在页面所有元素解析完成之后才开始执行。

    16.消除阻塞渲染的 CSS 及 JavaScript

    对于页面中加载时间过长的 CSS 或 JavaScript 文件,需要进行合理拆分或延后加载,保证关键路径的资源能快速加载完成。

    17.避免使用 CSS import 引用加载 CSS

    CSS 中的 @import 可以从另一个样式文件中引入样式,但应该避免这种用法,因为这样会增加 CSS 资源加载的关键路径长度,带有 @import 的 CSS 样式需要在 CSS 文件串行解析到 @import 时才会加载另外的 CSS 文件,大大延后 CSS 渲染完成的时间。

    页面渲染类

    1.把 CSS 资源引用放到 HTML 文件顶部

    一般推荐将所有 CSS 资源尽早指定在 HTML 文档 中,这样浏览器可以优先下载 CSS 并尽早完成页面渲染。

    2.JavaScript 资源引用放到 HTML 文件底部

    JavaScript 资源放到 HTML 文档底部可以防止 JavaScript 的加载和解析执行对页面渲染造成阻塞。由于 JavaScript 资源默认是解析阻塞的,除非被标记为异步或者通过其他的异步方式加载,否则会阻塞 HTML DOM 解析和 CSS 渲染的过程。

    3.尽量预先设定图片等大小

    在加载大量的图片元素时,尽量预先限定图片的尺寸大小,否则在图片加载过程中会更新图片的排版信息,产生大量的重排

    4.不要在 HTML 中直接缩放图片

    在 HTML 中直接缩放图片会导致页面内容的重排重绘,此时可能会使页面中的其他操作产生卡顿,因此要尽量减少在页面中直接进行图片缩放。

    5.减少 DOM 元素数量和深度

    HTML 中标签元素越多,标签的层级越深,浏览器解析 DOM 并绘制到浏览器中所花的时间就越长,所以应尽可能保持 DOM 元素简洁和层级较少。

    这么多前端优化点你都记得住吗?

    这么多前端优化点你都记得住吗?

    API接口管理 2022-06-12

    围绕前端的性能多如牛毛,涉及到方方面面,以下我们将围绕PC浏览器和移动端浏览器的优化策略进行罗列。注意,是罗列不是展开,遇到不会不懂的点还请站外扩展。开车速度有点快,坐稳了。tips : 这么多前端优...

  • 四种常见的 POST 提交数据方式

    四种常见的 POST 提交数据方式

    API接口管理 2022-06-12

    HTTP/1.1 协议规定的 HTTP 请求方法有 OPTIONS、GET、HEAD、POST、PUT、DELETE、TRACE、CONNECT 这几种。其中 POST 一般用来向服务端提交数据,本文...

  • ES6和Babel你不知道的事儿

    ES6和Babel你不知道的事儿

    API接口管理 2022-06-12

    因babel的版本从5升级到6有很多改动,比如babel本身不再提供任何transform的工作,都需要借助插件来完成,本文的所有讨论都是建立在babel 6之上的。如果只想看结论,直接跳到文章最后。...

  • 老司机常用的几个JavaScript调试技巧(javascript调试器)

    老司机常用的几个JavaScript调试技巧(javascript调试器)

    API接口管理 2022-06-12

    1. debugger除了console.log, debugger是我们最喜欢、快速且肮脏的调试工具。执行代码后,Chrome会在执行时自动停止。你甚至可以把它封装成条件,只在需要时才运行。if (...

  • CSS工程化演进(Css技术)

    CSS工程化演进(Css技术)

    API接口管理 2022-06-12

    CSS 技术的演进CSS 是 Web 开发中不可或缺的一部分,在前端工程化的不断进步的今天,一方面在 CSS 特性随着规范的升级越来越丰富,另一方面,前端业务复杂性的增加带来的工程愈加庞大,驱使者开发...

  • WebSocket 详解(websocket没准备好,点确定继续)

    WebSocket 详解(websocket没准备好,点确定继续)

    API接口管理 2022-06-12

    WebSocket 出现前构建网络应用的过程中,我们经常需要与服务器进行持续的通讯以保持双方信息的同步。通常这种持久通讯在不刷新页面的情况下进行,消耗一定的内存资源常驻后台,并且对于用户不可见。在 W...