Javascript 客户端模板引擎(Rivets.js)中的低性能渲染
我正在渲染大约1000个对象的数组。html绑定非常繁重(见下文)。铆接.bind()大约需要5秒钟的时间 有关于提高绩效的建议吗?我认为我负担不起块绑定,因为我同时使用分页/排序库,需要整个数组才能进行排序/分页 以下是我对每个对象(轨迹)的HTML:Javascript 客户端模板引擎(Rivets.js)中的低性能渲染,javascript,jquery,html,templating,rivets.js,Javascript,Jquery,Html,Templating,Rivets.js,我正在渲染大约1000个对象的数组。html绑定非常繁重(见下文)。铆接.bind()大约需要5秒钟的时间 有关于提高绩效的建议吗?我认为我负担不起块绑定,因为我同时使用分页/排序库,需要整个数组才能进行排序/分页 以下是我对每个对象(轨迹)的HTML: {variation.track.name} {variation.track.tracklength} {track.genre} {track.mood} {track.track.tracklength} {track.lastPlay
{variation.track.name}
{variation.track.tracklength}
{track.genre}
{track.mood}
{track.track.tracklength}
{track.lastPlayed}
{track.track.name}
{track.track.staff|pickvalue}
{track.instrument}
{轨道工业}
{track.tempo}
{track.tag_list}{track.track.name}
{track.dateLastPlayed}
{variation.track.name}
{variation.track.tracklength}
{variation.track.name}
此曲目没有其他版本。
- 不要铆接事件示例:rv单击会降低性能,因为您将传递回调方法的整个视图
- 不要将整个视图传递给铆钉。bind()
- 只传递必要的模型,然后执行此操作
- 如果可能,首先绑定100个元素,然后如果用户滚动页面的一半,则再次绑定100个元素,这肯定会提高性能
- 我在活页夹中做了以下更改,以使其即使在低端移动设备中也能运行得更快 rivets.binders.text = function(el, value) { if (el.textContent != null) { return el.textContent; } else { return el.innerText; } }; 铆钉.binders.text=函数(el,值){ 如果(el.textContent!=null){ 返回el.textContent; } 否则{ 返回el.innerText; } };
解决这个问题的办法就是找到另一种方法。我选择在服务器上预呈现html,并通过API响应提供它。这将页面加载时间从~5s缩短到~1s。这个答案有一些一般提示,但如果仔细阅读,它不适用于我的问题。我在活页夹中做了以下更改,使其即使在低端移动设备中也能运行得更快。\n rivets.binders.text=函数(el,value){if(el.textContent!=null){return el.textContent;}否则{return el.innerText;};我已经更新了答案,请告诉我是否有用 rivets.binders.text = function(el, value) { if (el.textContent != null) { return el.textContent; } else { return el.innerText; } };