Environment:
- Windows Server 2003 - IIS 6.x
- ASP.NET 3.5 (C #)
- IE 7,8,9
- FF (regardless of the last 10 versions)
User scenario:
The user enters search criteria for a large data set. After starting the query, they are moved to the results page, where they are waiting for the data to load and can then refine the data.
Technical scenario:
After the user submits the search criteria (via an ajax call), the user interface calls the background call. The internal service requests the transaction system and places the received data in the "cache" db - denormalized table, setting for further refinement of the data (ie Sorting, filtering). The user interface waits until the data is cached, and then, having received a notification about the completion of the process, it will go to the resulting page. The resulting page then calls a call to retrieve data from the denormalized table.
Problem:
The search is relatively slow (15-25 seconds) for large queries, as a result of which many systems have to query based on the entered criteria. This is relatively fast for other queries (<4 seconds).
Technical limitations:
We cannot completely reverse engineer this search / result system. There are many complexities here between how an interface and an internal interface are interconnected. A page is required (due to restrictions that cannot be resolved on StackOverflow) in order to go after fulfilling the search criteria.
We also cannot ask the organization to denormalize data before searching, because the data must be in real time, that is, if the user makes changes to other systems, the data must be displayed correctly if they are searched later.
The process I want to execute is:
I want to cheat a little. I want to issue a cache request via the asynchronous HttpHandler in a restart model.
After issuing the request, I want to transfer the page to the resulting page.
On the transition page, I want to poll the Cache table to see if data has been inserted into it yet.
The reason I want to make this transition right away is that the resulting page is expensive in itself (even without receiving data) - another 2 seconds of loading time before even calling a service that receives data from the cache.
Question:
Will the ASP.NET thread that is called through the async handler continue processing reliably even if I go from the page using javascript redirection?
Technical boundaries 2:
Yes, I know ... This search process does not seem effective. There is nothing I can do about it right now. I'm trying to do my best to make it work a little better, while we continue to study how we are going to redesign it.
If you answer: “Drop it and start again”, please do not answer. This is unacceptable.
Jamie gunn
source share