设计具有数据持久性的 Web 应用程序的更好方法
Posted
技术标签:
【中文标题】设计具有数据持久性的 Web 应用程序的更好方法【英文标题】:Better way to design a web application with data persistance 【发布时间】:2013-11-28 18:06:54 【问题描述】:对于我的 Web 应用程序,我一直在想,哪种方式最适合设计具有数据持久性的适当 Web 应用程序。现在我每次都设计一个 html 页面,所有内容和数据上传都通过基于 RESTful 模型的 jQuery AJAX 请求管理到负责数据库的远程服务器。但最终有时会进行大量的 AJAX 调用,并且获取大量数据有时需要几秒钟,这对用户不友好。
是否有类似指南或标准开发方式来设计网络应用程序?
我已经查看了 WebWorkers 和 WebSockets javascript API,但还没有使用过它们。有人已经尝试了吗?这是否允许比 AJAX 交换更好的性能?
您的 Web App 开发方式是什么?
【问题讨论】:
SO 有点离题 这个问题对于***来说太宽泛了。但是,是的。 websockets 可以为您提供非常低的延迟。我用过很多次。例如,请参阅我的网站 www.rogueshell.com。也许还可以看到:lucumr.pocoo.org/2013/11/17/my-favorite-database 【参考方案1】:这里真的不适合问这样的问题,但我会给你一些简短的建议。
-
AJAX 请求不应该花费很长时间,如果它们一直很慢,那么问题很可能是您的服务器端代码和那里的效率低下。如果您的服务器很慢,那么 Websocket 不会比 AJAX 给您带来任何好处。
一种常见的设计是加载页面运行所需的最小数据集,对任何其他所需数据进行 AJAX 处理,以使页面尽快响应。
缓存和预取是加快站点速度的好方法,例如:如果您一遍又一遍地运行 mysql 查询,则运行一次并将结果放入缓存服务(如 memcached 或 mongodb)中,有效期为一个小时(或其他时间)并提供缓存的响应,这将加快您的服务器响应时间。预取是预测您的用户接下来要做什么,并在后台加载该数据,无需任何用户交互。
如果您的用户重复加载相同的数据,请考虑使用 localStorage 或 IndexedDB
【讨论】:
以上是关于设计具有数据持久性的 Web 应用程序的更好方法的主要内容,如果未能解决你的问题,请参考以下文章
在具有多个数据库的域驱动设计DDD上添加项目的最佳方法是什么?