Javascript AngularJS:一次加载所有数据作为JSON,而不是使用数据库,只加载部分数据。什么更好?

Javascript AngularJS:一次加载所有数据作为JSON,而不是使用数据库,只加载部分数据。什么更好?,javascript,json,angularjs,mongodb,Javascript,Json,Angularjs,Mongodb,我必须在网页上显示存储在ERP中的产品。ERP可以生成包含所有产品的XML或JSON文件。网页需要分页、排序或按属性过滤等功能。目前,我认为最简单的方法是用AngularJS加载整个文件,然后迭代所有项目并使用它。产品数量限制在500件左右。我认为这是最简单的,因为客户端每天都在更改信息,这样我就不必为数据库编写导入/同步过程 但我有点担心表现。排序、过滤、分页等都是使用数据库时非常快的事情(可能是MongoDB,因为数据结构非常简单) 我能预料到严重的性能问题吗?这可行吗?或者我应该在ERP和

我必须在网页上显示存储在ERP中的产品。ERP可以生成包含所有产品的XML或JSON文件。网页需要分页、排序或按属性过滤等功能。目前,我认为最简单的方法是用AngularJS加载整个文件,然后迭代所有项目并使用它。产品数量限制在500件左右。我认为这是最简单的,因为客户端每天都在更改信息,这样我就不必为数据库编写导入/同步过程

但我有点担心表现。排序、过滤、分页等都是使用数据库时非常快的事情(可能是MongoDB,因为数据结构非常简单)


我能预料到严重的性能问题吗?这可行吗?或者我应该在ERP和前端之间建立一个数据库来完成繁重的工作吗?

唯一确定的方法是自己测试,这就是我要做的。答案往往是“视情况而定……”。你说它大约有500个产品,如果每个产品只有一个产品名,那么一个数据库就太过分了。Angular非常适合这个量。但是,如果每个产品都有大量的属性和嵌套数据,那么文件本身可能会非常大,甚至可以在每个页面上加载。所以,这取决于

我谨此陈辞:

  • 将文件从ERP导出为JSON
  • 创建一个样板应用程序
  • 将JSON文件作为资源文件
  • 创建一个简单的repeater并将这些对象抛出到DOM中

现在,您可以轻松地进行过滤、排序、分页等实验。测试浏览器性能和加载时间是否符合您的要求。

我认为数据传输不会有性能问题,因为JSON文件中只有500个元素。但也许你会在用AngularJS显示这500个元素时实验性能问题

您可以使用AngularJS签出“无限滚动”,而不是分页,这是显示结果性能的一个很好的解决方案。检查这篇文章:

不,我不同意在中间有一个数据库。您正试图将其用作缓存,但问题多于解决方案,因为您只有500个元素,所以根本无法获得性能。还有另外一个问题:数据库维护;)


干杯

我得到了一个样本文件,大小约为2MB。因此,如果我在每次加载页面时都加载它,那么这可能是一个性能问题。但是谢谢你的链接,我会查出来的!您绝对不应该在每次页面加载时都加载2MB。相反,在中间有一个DB,您可以将JSON下载为资源,并将批处理过程与您的“缓存”JSON与ERP JSON进行比较,仅当信息发生很大变化时。然后,你的angular应用程序将使用你的“缓存”JSON。使用此解决方案,您无法确定您的信息是100%最新的,但您会在性能上获胜。还有其他解决方案,比如中间的Web服务和异步通信(例如JMS),但这些都是更复杂的解决方案。干杯