环境:
- Windows Server 2003中 - IIS 6.x的
- ASP.NET 3.5(C#)
- IE 7,8,9
- FF(无论最新的10个版本)
用户方案:
用户输入针对大型数据集的搜索条件。 发起请求后,他们浏览到一个结果页面,在那里等待,直到数据被加载,然后可以细化的数据。
技术方案:
用户发送的搜索条件后(通过AJAX调用),UI调用后端服务。 后端服务查询事务处理系统(一个或多个),并将所得数据置于一个分贝“缓存” - 非规范化表,建立用于进一步细化中的数据(即排序,筛选)。 UI等待,直到数据缓存,然后在得到通知,该过程完成后,导航到结果页。 结果页面,然后进行调用从非规范化表中获取数据。
问题:
搜索是针对最终不得不查询根据输入的条件很多系统大型查询比较慢(15-25秒)。 它是用于其他查询(<4秒)比较快的。
技术方面的限制:
我们不能完全重新设计这个搜索/结果系统。 有办法很多,这里复杂的UI和后端是如何联系在一起的。 该页面需要进行搜索条件后开启(因为不能在计算器上得到解决制约)。
我们也不能要求该组织对非规范化的数据搜索之前,因为数据必须是实时的,即如果用户在其他系统的变化,该数据有,如果他们做一个搜索之后才能正确显示。
的过程,我想跟进:
我要骗一点。 我想通过发布在消防忘记模型异步HttpHandler的“缓存”的要求。
发出查询后,我想将页面转换到结果页。
在过渡页,我想轮询“高速缓存”表,看是否数据已经被插入到它。
我想这样做过渡马上究其原因,是结果页面上本身昂贵的(即使没有获得数据) - 即使得到调用从缓存中获取数据服务之前还是2秒的加载时间。
题:
这会否是通过异步处理程序调用的ASP.NET线程可靠地继续处理,即使我使用JavaScript重定向从页面导航离开?
技术边界2:
是的,我知道......这个搜索过程不健全高效。 没有什么我可以做的现在。 我试图尽我所能让它表现得更好一点,同时我们继续研究我们如何来重新设计它。
如果你的答案是:“把它扔掉,并开始了”,请不要回答。 这是不能接受的。