我真的很想学习如何完成这两件事:
Facebook:当用户登录并且只是坐在他们的新闻源上时,新项目会自动显示在新闻源中,会自动显示朋友请求,消息和通知的红色徽章,以及即时消息。这是很多数据库活动!最重要的是,用户可以远程结束其他会话,因此他们的所有会话都必须不断检查它们是否仍然有效。有这么多用户,如何在不杀死服务器的情况下完成所有这些工作?Stack Overflow:Stack Overflow上有60多个徽章,基于用户执行的各种操作。看起来几乎所有用户的操作都是非常复杂的,以确定它是否为他们赢得了徽章。同样的问题:有这么多用户,如何在不杀死服务器的情况下完成所有这些工作?
我真的很感激一些指导。
答案 0 :(得分:2)
Planning:
该过程的第一步是计划。 Facebook或Stackoverflow今天无法创建徽章,并且在2个月后无法创建徽章,他们发现了一个问题。因此,需要进行详细规划以创建类别。我可以在这里写很久,但你需要一些技术;让我们继续前进。
Object Oriented:
在这些应用程序中,一切都是面向对象的。以Careers.stackoverflow为例。与职业生涯有关的是围绕职业生涯。因此,存在大量的职业,简历,当前用户的stackoverflow数据。以用户的徽章为例,他们不能将其作为对象,它不能被职业子域使用。他们创建这样的徽章对象可以在不同的应用程序中使用。
I just promoted careers site of stackoverflow. :)
Database:
当我们谈论数据库时,程序,触发器等也会被考虑在内。仅维护数据库是不够的。如果发生一个事件,可能需要触发一个数据库查询,以便为该事件提取一些有用的数据。让我们说你正在回答同样的问题。当你还在搭便车时,Stackoverflow会在上面抛出一个橙色信息栏,上面写着“已发布1个新答案”。当某些用户在您键入时已经发布了答案时会发生这种情况。这里使用触发器。
Ajax:
当您只想随机加载页面的一小部分时。
Jquery, Ext JS:
用作一个不错的javascript和良好的表示逻辑。
Servers:
在服务器中,他们在不同位置创建不同的节点实例,场。它们将流量路由到服务器上的不同节点。因此监控哪些内存占用了很多。然后他们相应地将新节点,实例分配给这样的流量。 他们使用不同的农场维护他们的数据库。如果一个人在洛杉矶崩溃,他们会从纽约提取数据并将两者带到同一平台。
R&D:
最后一件事是R& D,如果没有这个,你就无法跟上市场的新潮流。你必须要掌握新的技术和发展。
希望得到问题的答案。
答案 1 :(得分:0)
我不知道facebook,但我会想象javascript会在服务器上查询新消息。
Stackoverflow徽章要简单得多,它们可以预先计算并存储在用户配置文件中,以便在生成主页时读取
答案 2 :(得分:0)
javascript是一种解决方案 它可以帮助您在不重新加载的情况下即时执行操作
答案 3 :(得分:0)
根据我听到的(我没有验证),HTTP网络请求可以永久持续,因此Facebook,Gmail等中的通知只不过是持久的“请求”给我下一次发生的变化“。没有民意调查;这是一种类似回调的机制。