目前我正在开发基于网络的应用程序。我想知道设计人员在设计可扩展的基于 Web 的应用程序时应注意哪些关键因素?
最佳答案
这是一个相当模糊和广泛的问题,你可以写书。你能走多远?在某些时候,SQL JOIN 的性能会崩溃,您必须实现一些分片/分区策略。你说的是这个水平吗?
一般原则是:
- 缓存所有静态内容(图像、CSS、Javascript)并对其进行版本控制;
- 将此类内容放在另一个域中以阻止不必要的 cookie 流量;
- GZip/deflate 一切;
- 只执行需要的Javascript;
- 永远不要使用 Javascript 做您可以在服务器端做的事情(例如,使用 CSS 设置表格行的样式,而不是使用奇特的 jQuery 奇数/偶数技巧,这可能是实时 killer );
- 尽量减少外部 HTTP 请求。这意味着只有很少的 CSS、Javascript 和图像文件。这可能意味着实现某种形式的 CSS spriting 和/或组合 CSS 或 JS 文件;
- 在必要时使用服务器端缓存,但只有在您发现问题后才使用。内存是一种昂贵但通常有效的折衷方案,可提高性能;
- 测试和调整所有数据库查询;
- 尽量减少重定向。
关于java - 设计可扩展的基于 Web 的应用程序的关键因素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1284736/