javascript – Knockout JS和大型模型

前端之家收集整理的这篇文章主要介绍了javascript – Knockout JS和大型模型前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

我想弄清楚使用KnockoutJS的最佳方法,我需要你的建议.

我的视图模型包含一组“文档”,每个文档都有一组“值”.
使用以下模板将每个“文档”呈现为单独的表:

一切都很好,除非视图模型很大.

例如,如果视图模型的大小约为1兆字节(并且包含80个文档,每个文档包含60个值),则在我的计算机上渲染需要两分多钟.

我想知道是否有一种方法可以显着提高性能…或者放弃Knockout并在服务器端构建html并将其推送到浏览器会更快…

渲染“仅”300kb视图模型需要接近30秒.

“文档”由用户定义,因此甚至有> 2兆字节的场景(我不知道他们为什么这样做).

有没有人有JavaScript大视图模型的经验?

最佳答案
根据您当前无法延迟加载(按需加载)数据的要求,您的数量非常有限.

服务器端HTML

生成HTML服务器端将是最快的方法.但即便如此,如果模型很大,也会有延迟.考虑下载一个5MB的HTML文件,这将花费你的浏览器一些时间来解析和渲染如此大的东西.

仍然使用KNOCKOUT JS

如果您仍想使用Knockout JS框架,那么我最好的建议是将每个Document放在IFRAME中.这不是真正推荐的,会给您的服务器带来额外的负担,但如果正确实施可以加快您的用户体验.

www.mysite.com/view/1

客户端浏览器最初将获得包含所有IFRAME的所有HTML,它将异步地为每个IFRAME分派请求.每个单独的Document请求将使用Knockout JS在其自己的帧中异步呈现.

为了改善用户交互,您甚至可以在IFRAME上设置加载事件. load事件可以重新调整IFRAME的大小,因此没有滚动条,或者从IFRAME中提取HTML并用提取的HTML替换IFRAME元素.

猜你在找的JavaScript相关文章