windows-8 - 我如何利用 Microsoft Rx 框架在 WinRT/Windows 8 中有效地实现 Bing Map

标签 windows-8 windows-runtime system.reactive bing

在我的电子商务应用程序中,我需要在 Bing map 中绘制附近的商店,而我的另一个要求是在缩放和平移 map 期间,我需要根据 map 中心更新我的商店。因此,为了实现这一点,我主要选择传统的编码方式。步骤如下。

  • 初始启动我将发送位置的 api 请求,并将在 map 上绘制商店。
  • 在 Maps ViewChanged 事件中,我将根据 map 当前商店发送对附近商店的后续请求。
    所以在这个实现过程中,我在单个 api 请求中获得了大约 400 个商店。我会在 map 上绘制这个。但是当我缩放或平移 map 时,它会同时发送多个请求并尝试更新 UI 上的图钉,最终它会阻止 UI 并且 Map 在我的应用程序中表现得很糟糕。

  • 在 Google 搜索期间,我发现了许多关于使用 Microsoft Rx 框架来实现类似功能的建议。但是没有得到任何合适的代码示例来实现我的目标。任何人都可以帮助我或指导我解决我的问题。
    请记住,我需要在单个请求中平均绘制 map 中的 400 家商店。

    问候,

    斯泰兹。

    最佳答案

    听起来您只是在缩放时发生事件时使连接和/或服务器充满多个请求。您想要做的是避免直接从该事件进行 API 调用。相反,您可以只启动一个计时器(或重新启动,如果已经运行)。这样,您可以缓冲那些重复的事件,直到用户停止缩放,然后只提交一个 API 请求。

    当然,您必须调整该计时器的持续时间,才能在等待事件完成和为用户提供响应式更新之间找到平衡点:)

    关于windows-8 - 我如何利用 Microsoft Rx 框架在 WinRT/Windows 8 中有效地实现 Bing Map,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17163795/

    相关文章:

    c# - 在 C# 中地理定位 IP 地址

    javascript - 如何在 Visual Studio 2012 for Windows 8 中使用 JavaScript 运行外部可执行文件

    c# - 无法从 Windows Phone 8.1 访问 .NET 4.5 PCL 中的本地化资源

    c# - 如何使用 Reactive 扩展实现 filewatcher

    c# - Subject<T> 和 ReplaySubject<T> 之间的主要区别是什么?

    javascript - Windows 8 JavaScript 应用程序开发 : Draw on HTML5 Canvas

    c# - Windows 8 上的 ScrollViewer 项目不同

    javascript - 如何使 Windows 应用商店应用程序非全屏?

    string - C++/CX : Why doesn't returning a StringReference work like passing one as an argument?

    c# - 如何使用 Reactive Extensions 实现事件