【发布时间】:2014-04-26 20:39:49
【问题描述】:
我对 jQuery 的了解非常有限。我需要开发一个页面来显示发布的新消息的数量。在 twitter 和 stackoverflow 网站中,我看到了一个 div,它显示了发布的新推文/问题的数量,当点击它时,较新的会显示在顶部。下面添加的是示例图像:
请建议是否可以使用 jQuery 或 Ajax 来实现。 谢谢
【问题讨论】:
标签: javascript jquery asp.net ajax twitter
我对 jQuery 的了解非常有限。我需要开发一个页面来显示发布的新消息的数量。在 twitter 和 stackoverflow 网站中,我看到了一个 div,它显示了发布的新推文/问题的数量,当点击它时,较新的会显示在顶部。下面添加的是示例图像:
请建议是否可以使用 jQuery 或 Ajax 来实现。 谢谢
【问题讨论】:
标签: javascript jquery asp.net ajax twitter
这些示例看起来像 push 而不是 pull 行为。我的意思是服务器对页面说'嘿,这个标签中有一条新推文',而不是页面询问'是否有任何新推文?还没有?好的,我会在 5 秒后再次询问'。
由于您使用的是 ASP.NET,因此您可以使用良好的 SignalR 库轻松地将通知从服务器推送到客户端。
您仍然必须在服务器上检测到有新的“事物”并向匹配的客户端发送消息(带有 signalR)。并且还在客户端处理消息并展示一段UI。
【讨论】:
当您使用 ASP.NET 时,您可以使用UpdatePanel 来帮助处理拨打电话和更新您的内容。请注意,UpdatePanel 使用 AJAX,并且可以设置为在指定的时间间隔自动更新。
如果我是你,我会做的是使用 UpdatePanel 调用一个方法,该方法向 Twitter API 发出请求并获取所有你尚未获取的新推文。然后计算返回的推文数量,如果该数字大于零,我将显示“X 条带有新活动的推文”,或者您要显示的任何计数器消息。
如果您不擅长 jQuery,这可能是您的最佳解决方案,因为您可以使用 UpdatePanel 和 Repeater 来渲染您的推文,并在单击时更新显示的推文按钮/链接/等,带或不带回发(以您对此实现的偏好为准)。
重要的旁注
请注意,Twitter API v1.1 要求您使用 oAuth 令牌,不应将其包含在 AJAX 调用中。您应该只使用服务器端代码向 Twitter API 发出请求,因此,此解决方案可能最适合您,因为您可以在代码中编写您的请求代码-后面(从而保证您的 Twitter 密钥和令牌安全),并使用 UpdatePanel 调用它。
更新
我通常不会在 Stack 上推广我自己的库,但如果您在使用 oAuth 向 Twitter 的 API 发出请求时需要帮助,请查看我的 C# library for Twitter requests。该文档包括在 Twitter 上设置 oAuth 访问的说明,并且非常详细地帮助您使用该库进行调用。它还包括库本身的 MSDN 样式文档、示例请求以及所有类、方法和属性的完整 IntelliSense。如果不出意外,它应该可以帮助您设置您的请求。如果您有任何问题,请告诉我,我可以帮助您。
【讨论】:
您需要使用$.ajax 调用检索新消息,每隔几分钟左右使用setTimeout 重复一次。但是要使该 ajax 调用正常工作,您必须拥有某种 API 端点,您可以从中检索数据。
这不仅仅是你可以通过在某个地方放入一个 jQuery 插件来构建并完成它的东西。在做任何事情之前,您需要了解 Javascript、jQuery 和您的特定 API。尝试查看jQuery basic tutoorial。
【讨论】:
您可以创建一个 WCF 服务来获取最新消息,您可以使用 setTimeout 调用该服务以使用 Ajax 实时更新您的消息 div,或者您可以使用 SignalR 添加实时功能。
【讨论】: