javascript - 分离基于 JavaScript 的插件和配置以提高性能的好方法是什么

标签 javascript performance configuration plugins

我正在开发一个使用越来越多基于 JavaScript 的插件的高流量 Web 应用程序。提高和保持高水平的前端性能是我非常关心的问题。我想重新设计页面中包含插件和特定插件配置的方式。

目前,一些插件被合并到一个整体的 plugins.js 文件中,而其他插件则作为单独的文件加载。配置是在模板文件内的内联脚本 block 中进行的。我相信插件管理正在失控,影响页面加载时间和性能。

我想到了以下方法:在单独的文件中分离插件,然后在单独的文件中编写特定于页面的配置(如分配事件处理程序或附加标签)。然后我打算有一个脚本,可能基于Sprockets ,它在部署时运行并将多个插件与其配置文件合并,然后输出一个文件。

我的输入是:

  • plugin1.js
  • plugin1.conf.js
  • plugin2.js
  • plugin2.conf.js

输出将包括特定页面所需的所有文件。

  • page1.js = plugin1.js + plugin1.conf.js + ...

考虑到越来越多的人正在编辑配置并不断添加更多插件,我相信这是一个很好的方法。

当然,我打算使用映射将所需的插件与特定模板匹配,以避免下载不必要的 JavaScript。

这是一个合理的方法吗?您认为它有任何问题吗?

有没有其他人解决过这类问题?

最佳答案

小心 page1.js 的浏览器缓存,要么在打包时动态命名它,例如page1-1002231846.js 或确保使用正确的 header 使缓存无效。

不要做太多的变体,而是一般化,浏览器缓存可能会比加载少几 Kb 节省更多时间。

识别大多数页面通用的脚本和模块,并将它们烘焙到 common.js 中

在页面底部放置尽可能多的 javascript,有助于在 javascript 繁重的网站上花费大量的渲染时间 - 这会推迟它们直到其他所有内容都设置好,从而使 DOM 更快速,加载时的用户体验更好。

使用 Chrome Speed Tracer 找出渲染瓶颈。

关于javascript - 分离基于 JavaScript 的插件和配置以提高性能的好方法是什么,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2379696/

相关文章:

java - 测量生产环境中 Java Web 服务的方法执行时间

ruby - 比较 2 个数组,每个数组包含 200,000 多个值

c# - 如何使用配置管理器

c# - 部署后 Azure 函数 : Read config from host. json

javascript - Expressjs 中附加到请求的对象可以被篡改吗?

javascript - vbscript Chr() 函数的 JavaScript 等价物是什么?

java - 在基于 PHP 的应用程序中进行后台处理的最佳方式

javascript - Dygraphs - 突出显示仅在第一个图表上工作

javascript - node.js 从 url 下载图像

mysql - “CONFIGURATION” 网站面板上没有显示菜单