求解: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时,会出现跨域问题。

因此,将这个需求和碰到的问题发到这里,请各位大牛们帮忙解决。。

posted @ 2011-03-14 10:38  mcjeremy  阅读(1688)  评论(0编辑  收藏  举报
------------------------------------ 心静似高山流水不动,心清若巫峰雾气不沾 ------------------------------------