挖空.js,更广为人知的只是挖空JS,挖空,或只是KO,是基于模型-视图-视图模型(MVVM)模式的开源独立JavaScript库,帮助开发人员构建现代和动态的网站。 2010年7月5日,微软的开发者/架构师史蒂夫·桑德森创立了它。 由于它实现了 MVVM 模式,因此挖空通过明确定义管理视图组件之间行为的代码层,在显示的数据(用户界面)、视图组件(JavaScript 表示模型)和域数据(存储数据)之间设置了不同的角色。 这真正突出了 JavaScript 管理本机事件的能力,因为它简化了组件相互交互的方式。

挖空所提供的一些最相关的功能是声明性绑定、自动用户界面刷新、依赖项跟踪、模板的使用和可扩展性。 KO 通过数据绑定属性将模型链接到 DOM,这有助于以更动态的方式显示数据并丰富用户体验。 如果模型数据发生更改,无需编写其他代码,自动刷新有助于更新 Web 浏览器的 DOM。 挖空的依赖项跟踪监视器,并利用挖空的库函数自动更新 KO 属性。 此外,Knockout 的模板功能有助于以简单方便的方式构建健壮的用户界面,从而最终帮助扩展自定义行为。 所有主要网络浏览器(如 Google Chrome 浏览器和 Firefox 浏览器)都支持挖空。

 

挖空中常见的性能问题

挖空 2.0 引入了一个称为控制流绑定的整洁功能,该功能向模板绑定添加了控制层。 图层使用采用子组件作为模板,并在每次触发时重新呈现它们。 然而,开发人员必须意识到不要过度利用此资源,并且没有规划。

通常,挖空开发人员会通过不适当地使用 if 和绑定

频繁呈现组件。 发生这种情况的常见情况是,您希望仅在使用 if 绑定填充可观察数组时才显示某些
组件
。 这样的实现取决于可观察数组的元素,这会导致每次发生更改时都会修改和更新挖空。 同样
,with
绑定很好地用于管理嵌套对象。 但是,每当发生更改时,它与其传入数据绑定其元素,而是使用新元素重新呈现整个部分。 如果组件很复杂,并且事件连接到挖空外部,这可能是一个成本高昂的操作。

 

提高加载时间的性能工具

遗憾的是,Chrome 的 KnockoutJS 扩展存储中没有自定义性能工具,它能够在用户界面上覆盖性能统计信息。 因此,挖空开发人员必须使用其他资源来可视化和识别潜在的性能问题。

 

铬开发工具和灯塔

Chrome 开发工具是一组 Web 开发工具,可以帮助开发人员解决各种 Web 诊断和调试问题。 好处是这些工具在浏览器中构建,帮助开发人员快速查找和修复错误。 通过包含的挖空应用程序扩展,Chrome DevTools 可以帮助展示特定元素或组件如何加载和呈现,作为用户体验。 开发人员可以记录其应用程序的会话,以便更好地衡量任何性能瓶颈可能在哪里,结果显示在单独的边栏中。 当尝试诊断大型视图模型内的滞后时间时,这一点尤其重要。

灯塔是 Chrome DevTools 集中的开源工具,可帮助诊断和修复网页和应用程序的一些性能方面,例如网站的辅助功能和 SEO 增强功能。 例如,灯塔还能够测试使用挖空JS创建的 PWA(渐进式 Web 应用程序)。 该工具的工作原理是测试页面加载速度,然后报告后使用建议的修复程序。 几个主要指标是感知速度指数,它由显示网页可见部分所需的时间(毫秒)定义,而”估计输入延迟”(听起来)是网页或应用程序在页面或应用程序加载时响应用户输入所用的估计时间。

 

使用 LoadView 优化挖空应用程序性能

LoadView 利用 EveryStep Web 记录器,这是一个点和单击脚本工具,可复制网站和 Web 应用的客户端交互,以评估复杂的方案。 这种 功能强大的脚本工具能够模拟复杂的用户操作 ,如鼠标单击、悬停和移动、图像和文本验证、菜单选择等等。 然后,脚本可以上传到 LoadView 中,用户可以从多个测试方案、地理位置和许多其他 功能中选择

挖空 JS 站点

 

除了点和单击脚本工具外,开发人员还可以手动编辑 C# 中的脚本(如有必要)。 这允许他们创建复制任何重复或动态用户方案的脚本,例如有人登录到帐户、搜索产品或任何其他关键用户路径,然后上载这些操作以查看它们在应用负载时的表现。 这允许开发人员捕获可能导致意外延迟时间或典型用户不可见的任何元素。 例如,可能与第三方元素的交互可能会导致总体响应时间增加。 对于用户来说,他们甚至可能没有注意到,但任何小的增强,可以帮助减少加载时间是一个很好的。

 

瀑布图

 

结论:用挖空.js编写的负载测试应用程序

Knockout.js 不像其竞争对手那样获得足够的聚光灯。 但是,其轻量级性质以及层间数据流是多么简单,有助于开发人员更快地构建应用程序,并建立坚实的基础。 随着 Web 应用程序的兴起和需求的增长,您不能仅仅依靠挖空框架来确保一致的性能。 开发人员需要确保其应用程序能够针对大量流量执行,并且需要使用与 LoadView 解决方案相结合的”EveryStep Web 记录器”等工具来有效地诊断性能瓶颈以及隐藏任务可能会影响应用响应时间和用户体验的情况。

开始 LoadView 免费试用, 获得 20 美元的负载测试积分,开始测试您的挖空应用程序! 或者,如果您想全面演练 LoadView 平台,请 与我们的性能工程师一起 注册现场演示。 他们将逐步完成脚本、设置和测试过程,并回答您可能拥有的任何性能测试问题。