我正在制作旧版静态网站的新版本,该版本长达50多个静态页面。
因此,我使用旧内容制作了一个JSON文件,因此新网站可以更多CMS(包含常用页面的模板),因此后端会变得更加干燥。
我想知道我是否可以通过JSON将这些内容提供给我的观点,或者我是否应该将它放在MySQL数据库中?
我正在使用Node.js,并且在Node I中可以将该JSON文件存储在内存中,因此当用户请求数据时不会进行文件读取。
这是否有正确的做法?服务缓存的JSON文件或通过MySQL提供性能差异吗?
有问题的文件大约是400Kb。如果文件大小与一个技术的选择相关吗?
答案 0 :(得分:6)
为什么要添加另一层间接?只需直接从JSON提供意见。
答案 1 :(得分:3)
如果您已经将视图存储为JSON并使用Node,则可能值得考虑使用MEAN堆栈(MongoDB,Express,Angular,Node):
通过这种方式,您可以在JS中编写整个代码,包括MongoDB中的文档存储。 我应该指出我自己没有使用过MEAN。
MySQL可以存储和提供JSON没有问题,但由于它没有解析它,它是非常不灵活的,除非你把它拆分成组件并且文档中的索引几乎是不可能的。
你是否应该'这样做完全取决于您的个人项目以及它是否/可能如何发展。
当您正在实施该网站的新版本(使用CMS)时,它会建议它是实时的并且会受到增长或变化的影响,并且可能在MySQL中存储JSON会存储未来的问题。如果它只是一个文件,那么从文件系统拉出并将其缓存在RAM中可能更容易了。
之前我已经在MySQL中为我们的项目存储了JSON,除了一些利基案例之外,所有这些都最终分割了组件数据。
答案 2 :(得分:2)
400KB很小。所有数据都将存储在RAM中,因此I / O不会成为问题。
动态构建页面 - 除非插入广告,否则所有重型打击者都会这样做。 (我曾经在这样一家公司的工作中工作。有数百万页一直存在;只有少数网页是静态的#34;。
哪个CMS - 太多可供选择。选择一对听起来很容易的人;然后看看你是否能够适应它们。然后在他们之间挑选。
Linux / Windows的;阿帕奇/ Tomcat的/ nginx的; PHP / Perl的/的Java / VB。同样,您的舒适度是这个小网站的重要标准;他们中的任何一个都可以完成任务。
哪里可能出错?我确定你已经点击了渲染速度很慢的网页。所以,显然有可能走错方向。你已经开关了;如果您的决定结果不尽如人意,请准备好从现在开始一年或两年换档。
避免任何过于沉重的EAV(键值)模式的CMS。它们可能适用于400KB的数据,但它们很难扩展。
答案 3 :(得分:2)
通常,数据库用于提供频繁更改的动态内容,记录具有一对多或多对多关系,您需要根据各种条件查询数据。
在您描述的情况下,看起来您可以将JSON文件缓存在服务器内存中。只要确保在文件内容发生更改时更新缓存,即重新启动服务器,通过http请求触发缓存更新或在文件系统级别监视文件。
除此之外,您应该考虑在服务器和浏览器上缓存静态文件以获得更好的性能
app.use" / bower",express.static(" bower-components",{maxAge: 31536000})
Here是关于浏览器缓存的好文章
答案 4 :(得分:0)
如果您的数据大小将来不会增长,那么直接从RAM本身提供json是一个很好的做法。但如果将来数据增加,那么它将成为最糟糕的应用案例。
答案 5 :(得分:0)
如果您不希望添加(m)任何新页面,我会选择最简单的解决方案:将JSON读入内存,然后从内存中提取。 400KB的内存非常少。
无需涉及数据库。当然,你可以做到,但在这里有点过头了。
答案 6 :(得分:0)
我建议在构建时生成静态html内容(使用grunt或..)。如果要应用更改,请触发构建并生成静态内容并进行部署。