2

我正在构建一个 ASP.NET AJAX 应用程序,该应用程序使用 JavaScript 调用 Web 服务以获取其数据,并且还使用 Silverlights 隔离存储在客户端计算机上缓存数据。最终,一旦数据被下载,它就会被传递给 JavaScript,该 JavaScript 使用 HTML DOM 显示在页面上。

我想弄清楚的是,我在 Silverlight 中进行这些 Web 服务调用然后在加载数据后将数据传递给 JavaScript 是否有意义?此外,无论我使用 JavaScript 还是 Silverlight 调用 Web 服务,Silverlight 都将使用独立存储将数据保存到磁盘。如果我用 JavaScript 调用 Web 服务,数据将被传递给 Silverlight 进行缓存。

我已经做了一些原型设计两种方式,我发现两种方式的性能几乎相同。此外,让我将 Silverlight 用于整个客户端数据访问层的原因之一是,我需要让计时器定期检查更新的数据并将其下载到缓存中,以便 JavaScript 可以在需要时加载。

有没有人做过类似的事情?如果是这样,您在使用所描述的 JavaScript 或 Silverlight 方法的性能方面有哪些经验?

4

4 回答 4

3

由于 Silverlight 可以处理基于 JSON 和 XML 的服务,因此响应的格式完全无关紧要。但是,您必须考虑以下几点:

1) Silverlight 比 JavaScript 快大约 1000 倍 2) 如果您的 Web 服务本身是基于 SOAP 的,Visual Studio 可以为您生成一个代理,这样您就不需要解析 SOAP 消息。3) Silverlight 具有 LINQ to XML 和 LINQ to JSON,这使得解析 POX 和 JSON 变得轻而易举。

在一个完美的世界中,我会使用 Silverlight 作为“引擎”,并在 Silverlight 不可用的情况下回退到 JavaScript。

问候,劳伦特

于 2008-10-03T22:06:40.553 回答
1

另一件需要考虑的事情 - 以 JSON 格式获取数据将比 XML 和 Web 服务更快。JSON 很快就变成了一个 JavaScript 对象,并且不必像 XML 那样进行解析。就个人而言,我会使用 JavaScript。

文章:使用 JSON 加速 AJAX

于 2008-10-03T19:57:34.743 回答
0

由于 JavaScript 不是多线程的,我发现使用 Silverlight 访问/缓存数据然后将其传递给 JavaScript 进行显示会产生更好的性能,同时避免锁定/冻结浏览器,这样用户就可以在数据的同时继续做事负载。

于 2008-10-03T20:32:54.593 回答
0

传递 JSON 格式的数据在一定程度上更快,因为与 XML SOAP 消息不同,它不需要 SOAP 标头或任何其他杂项信息 - 它只是纯数据。因此,使消息的总大小更小。

于 2008-10-03T21:14:02.860 回答