正在收听联系人的电子邮件地址JS



我正在JS和NodeJS中开发一个模拟Gmail的应用程序-获取和发送电子邮件。现在,我的问题是,当我想向我的一个联系人发送新的电子邮件时,如何获得联系人的电子邮件地址列表?我知道我应该使用ajax调用,但什么时候?如果我在初始化页面时调用它,然后获得联系人json,那么我对可能进入列表的新联系人有问题,同时,我的意思是,json永远不会真正更新。但是,每当用户按下"to"以显示所有更新的联系人时,都会创建一个ajax调用,这听起来很糟糕。。

希望你能理解我的问题!

谢谢!

您有许多设计选择:

  1. 您可以在页面加载时获取联系人,但您不会知道自页面加载以来添加的任何联系人。

  2. 与#1相同,但您可以为用户提供一个刷新联系人列表的按钮。

  3. 当用户第一次按下电子邮件地址按钮时,你可以获得一次联系人,但之后你就不知道有哪些联系人发生了变化。这使得它们比选项#1更为最新。

  4. 每次用户启动寻址操作时,您都可以获得新的联系人。这样做的缺点是,您向服务器创建了更多的请求(可能是大规模负载(,并且在显示寻址界面之前可能会有轻微的延迟(等待ajax调用完成(。带宽消耗也会增加一点。

  5. 您可以在每次用户启动寻址操作时请求新的联系人,但使用eTag标头,以便在99%的时间内,当联系人自以前以来没有更改时,服务器只能返回304状态(表示"未修改"(。这显然需要服务器跟踪更改,并生成与更改相对应的有意义的eTag标头,但可以减少带宽使用。

  6. 您可以使用webSocket或socket.io连接,这样对联系人的更改就会自动推送到页面上,因此页面中的联系人列表总是最新的。


由于听起来你在谈论用户的个人联系人,如果这是一种常见的使用情况,即用户在撰写电子邮件时更新自己的联系人,我会感到惊讶。因此,除非你认为这将是一种常见的用法,否则上述任何选项都可以正常工作,这取决于你如何优先考虑不太常见的用例。

我想说,你可能从#1或#4开始,只有当你发现有任何优先级的实际可用性问题时,你才会做更多的事情。在开发这样的应用程序时,重要的是要始终关注最重要的事情,而不是过度设计那些你不知道实际上很重要的事情。

我的解决方案将尝试将user_id=12发送到后端,或者如果有多个用户,则将user_id=[12,13]发送到后端。如果希望用户在UI上具有选择性,则使用多选复选框类型的UI若您在后端有用户信息,那个么从数据库中查找用户信息并从后端异步发送电子邮件。我的想法是从后端发送电子邮件,我们不需要前端的电子邮件信息。

最新更新