我们有一个典型的业务应用程序,看起来像Outlook的Winforms客户端与asmx webservices交谈。我们希望通过内部网提供部分功能,但我们需要达到的新用户 - 所有这些用户 - 都在发展中国家,具有拨号类型带宽和大量延迟。他们都使用IE 6。
因此,我们需要将往返次数以及传输的数据量保持在绝对最小值。我们正在考虑一个具有单个URL的站点,通过AJAX调用与我们现有的后端进行所有交互。基本上是一个胖客户端,它保持很多状态,并且只偶尔发出一个http请求来修改或获取数据。为每个用户点击发出二十二个请求的典型Web应用程序对我们不起作用。
这种方法听起来合情合理吗?如果你遇到这种问题,你会推荐哪些javascript框架或库?我们使用TIBCO GI进行原型设计,但XML操作很痛苦,我们无法在浏览器中获得所需的性能。接下来我们可以看看YUI,可能有我们现有的asmx服务JSON。
感谢任何建议。
答案 0 :(得分:2)
我能想到的几件事
往返
就像你的说法一样,越少越好,为了最好地适应浏览器客户端,最好通过浏览器应用程序的用例设计界面,返回界面的现成数据而不用其他高架。它与您目前为桌面应用程序提供的内容略有不同,因为状态并不像胖客户端那么容易。
<强>运输强>
在Web服务器上启用压缩。
<强> API 强>
尽可能利用REST api,因为一些静态数据可以被broswer缓存,并且大小小于将序列化形式的请求放入正文中
<强>编码
对于浏览器应用程序,JSON比XML要好得多,而且大小也小于XML。
<强>框架强>
您还可以查看JQuery或原型 最近的GWT也非常适合用AJAX构建weblication,它将java代码转换为具有国际化功能的javascript等。它还使调试变得更加容易。
对于Web服务,值得再看一下WCF RESTful服务,您应该能够在将框架移动到WCF的同时利用现有的业务逻辑。
答案 1 :(得分:1)
确保首页加载的内容尽可能多。在第一次构建应用程序时,页面会立即通过Ajax调用从服务器请求更多状态。可能是通过在页面上包含信息来避免您对服务器的第一次请求。
如果您有很多图片,请使用css sprites来减少往返行程以获取图片。
进行非标准化。构建应用程序的逻辑方法可能是进行一些不同的Ajax调用以从服务器获取不同的状态。将它们组合起来以返回更大的JSON结构。
使用YSlow和Firebug查看您的网页实际上在做什么。
答案 2 :(得分:1)
以下是一些想法: