我的AlpacaJS配置变得非常不可用,无法呈现大量数据。我已经在一个项目上成功使用Alpaca数月了,但是最近却遇到了数据集比我以前抛出的更大的问题。
我有一个嵌套的数据结构-一个包含字段的对象数组,另一个包含更多字段和另一个数组的对象数组,等等。基本上,它是一棵倒下约4层的树。最初可以正常工作,但是一旦我保存了一堆数据,一切就变得缓慢了,例如:
羊驼毛需要很长时间才能初步渲染
在页面上滚动很慢,并且会产生空白屏幕数秒钟,直到弹出/渲染当前在屏幕上的元素为止。
与单个输入元素进行交互有很大的滞后-可能需要花费几秒钟的时间才能将键入的字符实际出现在字段中。
我竖起了一个小提琴以说明问题(小提琴本身可能需要很长时间才能加载!): https://jsfiddle.net/DookTibs/q6u25ec3/7/
// preloadData/schema defined above in jsfiddle; way too much to post here
$(document).ready(function() {
$("#form").alpaca({
"data": preloadData,
"schema": schema,
"options": {
"form":{
"attributes":{
"action":"http://httpbin.org/post",
"method":"post"
},
"buttons":{
"submit":{
"title": "Send Form Data",
"click": function() {
var val = this.getValue();
if (this.isValid(true)) {
alert("Valid value: " + JSON.stringify(val, null, " "));
this.ajaxSubmit().done(function() {
alert("Posted!");
});
} else {
alert("Invalid value: " + JSON.stringify(val, null, " "));
}
}
}
}
}
});
});
在小提琴中有(大约计数)3个顶层元素,每个元素有1-2个第二层元素,50-100个第三层元素和0-3个第四层元素...产生大约1500个总元素页面,包括用于与数组交互的Alpaca控件。
我注意到/尝试过的事情:
我已将生成的html(将近100,000行)放入了自己的文件中。在浏览器中查看此问题没有问题,因此我认为这不是字段太多的问题。 (我不知道这是否是所有有用的信息;在这种情况下,显然没有任何侦听器或逻辑附加到元素上,因此运行速度更快也就不足为奇了)
我已经通过将“ view”:“ web-display”传递给初始的羊驼毛以只读模式进行了尝试。这里也存在很多问题-特别是滚动滞后/弹出,但显然没有输入滞后,因为没有输入!但这表明引起问题的不仅仅是听众过多。
如果由于我的数据结构的深度而导致内存问题,我尝试将其“展平”-因此,不是将每个对象层嵌套在一起,而是将每个数组放在顶层,然后添加引用其他元素的字段。没有明显的区别,我仍然看到相同类型的问题。
我想知道是否有任何建议可以尝试,例如以不同方式配置羊驼毛?我可以假设学习过程会很艰难,但是我很乐于深入研究代码,因此,如果对羊驼代码库中的位置有任何建议,我也很想听听