社交网络架构决策

时间:2014-04-11 17:46:44

标签: javascript php frontend backend

由于我无法在构建动态网站的主题中自由定位,因此我很难谷歌这一点。所以我会试着向你解释这个问题。

我正在开发一个简单的社交网络。我已经使用POST方法构建了一个基本的PHP API,例如“get_profile.php”,“add_post.php”等文件,用于传递一些数据。然后我尝试使用JS AJAX获取数据(php函数通过JSON返回它),这意味着我获得了在页面加载后我需要在页面上显示的所有数据。这导致页面加载速度降低,我觉得这种结构确实是错误的。

我希望你能解释我如何建立一个合适的结构,或者至少给我一些阅读的链接。感谢。

2 个答案:

答案 0 :(得分:0)

如果我理解你的架构是正确的,那听起来不错。

建议

使您的体系结构与此类似,您可以为页面结构提供templates,然后使用ajax请求中的数据填充该结构。这也使您的服务器更快,因为它也不必渲染HTML。

请注意你提出的请求数量,如果每个客户都做了很多,你就会遇到问题。

尝试将您的应用程序分解为不同的主要部分并依次处理每个部分。这将允许您稍后将它们分成模块。这种做法也称为微服务架构。

在您将它们分解后,尝试并计算用户交互和模式。这将帮助您以一种可以轻松优化大多数frequest用例的方式设计数据库和模型。

职业选手的方式。

你应该研究facebook如何做事。他们对此非常开放。 例如,BigPipe方法是我在加载页面时看到的最快的方法。

此外,我认为您应该阅读一些有关RESTful应用程序和SOA类型体系结构的内容。

答案 1 :(得分:0)

使用服务器端的(最少)所需数据填充HTML,并使用AJAX在客户端加载所有其他必要数据(如您所做)。

无论如何,我会在您的应用程序中查找最重要的瓶颈。你是否并行化AJAX请求?

例如,Facebook没有使用服务器端的实际数据填充HTML,但提供了粗略的结构,稍后使用AJAX请求填充。

Facebook screenshot