【问题标题】:Listening to contact email address JS [closed]收听联系电子邮件地址 JS [关闭]
【发布时间】:2020-08-16 14:21:37
【问题描述】:

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

希望你能理解我的问题!

谢谢!

【问题讨论】:

    标签: javascript node.js ajax


    【解决方案1】:

    您有多种设计选择:

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

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

    3. 当用户第一次按下按钮来处理电子邮件时,您可以获得一次联系人,之后您将不知道联系人的变化。这使得它们比选项 #1 稍微更新一些。

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

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

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


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

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

    【讨论】:

    • 非常感谢!我认为#5是满足我需求的最佳解决方案。 :)
    【解决方案2】:

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

    【讨论】:

    • 我完全不明白这是如何回答这个问题的。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-06-24
    • 2012-08-15
    • 2023-03-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多