前端之家收集整理的这篇文章主要介绍了
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元素.
原文链接:https://www.f2er.com/js/429553.html