我们有一个典型的业务应用程序,其中包含一个Outlook外观的Winforms客户端,它与asmx webservices进行对话。我们希望在我们的内部网上提供一部分功能,但我们需要接触到的新用户-所有这些新用户-都在发展中国家,具有拨号类型的带宽和大量的延迟。而且他们都使用IE6。
因此,我们需要将往返次数以及传输的数据量保持在绝对最小。我们正在考虑一个只有一个url的网站,所有与我们现有后端的交互都是通过AJAX调用实现的。基本上是一个保持大量状态的胖客户端,只是偶尔发出修改或获取数据的http请求。典型的web应用程序每次用户点击都会发出24个请求,这对我们来说是行不通的。
这种方法听起来合理吗?如果你遇到这样的问题,你会推荐哪种javascript框架或库?我们使用TIBCO GI进行了原型设计,但是XML操作很痛苦,而且我们无法在浏览器中获得所需的性能。接下来,我们可以看看YUI,它可能有我们现有的asmx的serve。
感谢您的建议。
发布于 2008-11-01 23:25:24
我能想到的几件事
往返
就像你说的,越少越好,为了更好地适应浏览器客户端,最好是根据浏览器应用程序的用例来设计界面,在没有其他开销的情况下为界面返回随时可用的数据。这将与您当前为桌面应用程序提供的状态略有不同,因为状态并不像胖客户端那样简单。
传输
在web服务器上启用压缩。
接口
尽可能使用REST api,因为浏览器可以缓存一些静态数据,并且大小小于将序列化形式的请求放在正文中
对进行编码
对于浏览器应用来说,JSON比XML好得多,而且JSON的大小也比XML小。
框架
你也可以看看JQuery或者prototype最新的GWT也很适合用AJAX构建网页,它将java代码翻译成带有国际化特性的javascript等等,这也使得调试变得非常容易。
对于web服务,值得再看一看WCF服务,您应该能够利用现有的业务逻辑,同时将框架转移到RESTful。
发布于 2008-11-02 13:00:32
正如CodeMelt所说,这一切都是关于减少往返行程。这里有更多的方法:
请确保您的第一个页面加载有尽可能多的信息。在第一次构建应用程序时,页面经常会通过Ajax调用立即从服务器请求更多的状态。可以通过在页面上包含信息来避免对服务器的第一次请求。
如果您有许多图形,请考虑使用css sprites来减少获取图像的往返行程。
去规范化。构建应用程序的逻辑方法可能是使用几个不同的Ajax调用来从服务器获取不同的状态。将它们组合在一起以返回更大的JSON结构。
使用YSlow和Firebug来查看您的页面实际在做什么。
发布于 2008-11-02 13:19:58
以下是一些想法:
https://stackoverflow.com/questions/256215
复制相似问题