求解:AJAX轮询跨域WebService。
目前有几个工作流系统,每个系统都通过webservice向外提供对工作数目的查询。
工作数目均有以下几种方式:在办、待办、已办。
也就是说,每个webservice都有至少3个对外提供的函数(所有系统的函数签名均一致)。
需求:
在.NET(2.0)环境下,编写一个web控件或webpart,来集中显示每个系统的工作数目。
布局如下:
说明: 其中绿色部分,表示是拥有当前焦点的系统和工作项类型。
左边的三个小框显示的是工作项类型,上方的小框显示的是系统。
左边的工作项类型中的红色文字,显示的是所有系统在某个类型(比如在办)下的总数目和 ,比如,在办的(23),表示是的所有系统(5+7+11+0)的和。待办、已办同理。
右边的系统中的红色文字,显示的是当前系统在当前类型(即左边拥有当前焦点的类型)下的工作项数目。 比如,系统2(7),表示系统2拥有7项在办工作、系统3拥有11项在办工作。 当点击切换左边的工作类型类型时,右边的所有系统的数目也会改变,比如,当点击待办时,右边的所有系统的数目均会变成各系统下拥有的待办数目。切换后的界面如下所示:
行为描述:
组件(控件)加载完成时,默认选中第一个系统,及第一个工作项类型(在办)。
点击左边的工作项类型时,右边的系统数目相应的改变,同时更新列表。
点击某个系统时,更新列表。
技术选用:
1、.NET : HttpWebRequest
2、JavaScript:Ajax
需要注意:
1、 某个系统所在的服务器停止提供服务或服务器响应缓慢时,控件或组件不能阻塞页面响应。
2、 所有的webservice与控件或组件所在的站点不为一个域(即所有的请求均是跨域)。而且webservice两两之间也不在同一个域。
----------------------
目前,我分别使用HttpWebRequest和JS两种方式进行了处理。存在以下问题:
使用HttpWebRequest时,当某个webserivce停止响应,或响应慢时,会导致使用控件或组件的页面被阻塞。
使用ajax时,会出现跨域问题。
因此,将这个需求和碰到的问题发到这里,请各位大牛们帮忙解决。。
心静似高山流水不动,心清若巫峰雾气不沾。
</h3>