From: Chris D. <ce...@ui...> - 2007-10-09 17:42:03
|
Hi all, I am experiencing a major performance problem with the AJAX calls in the Search Results screen: Since there are quite a few (20 each) calls to getStatus() and getSaveStatus(), I noticed that it took too long before a call to getNarrowOptions() was made. And since the narrowing functionality, in my case, is the most time-consuming process, the effects of this are disastrous. I do realize that each call is asynchronous, however, it appears that the relatively quick getStatus() and getSaveStatus() responses are getting handled midstream, delaying the final call to getNarrowOptions(). Viewing my apache logs (attached to this email) will make this clear, I think. I was able to solve my issue by queuing the getStatus() and getSaveStatus() function calls and executing them at the end of the page load (I didn't queue the getNarrowOptions() call). I'm not sure if this is the best way to handle it, but I didn't want to depend on the layout of my web page to determine the order of execution. At the end of my apache log is the "queued" version of AJAX calls. Notice the difference in placement of getNarrowOptions(). BTW, I tested this with Firefox 2.0.0.6 on Ubuntu Linux and also with Microsoft IE version 6.0 on Windows 2000; they both had very similar behaviors. Let me know if anyone is interested in my "fix." In my particular case, the usability of this page has increased significantly. I also noticed a caching problem in Microsoft IE (version 6): While testing with IE, I noticed the getStatus() calls were being cached in the browser (with default IE cache settings set to "Automatic"). Shouldn't these web pages be delivered with a no-cache pragma (cache-control header)? Because if they aren't, won't the circulation information, i.e., availability, be potentially out of date? I verified this in my implementation of VUFind: I performed a search, chose an item, then checked-out the item (rendering it "unavailable"); I performed the same search again and the status remained "available" (however, if I clicked on the Holdings in the Record display, it correctly showed the proper circulation information, i.e., "checked out"). I haven't yet attempted to address this issue. It may be as simple as modifying the launch() method in web/services/Search/AJAX.php by adding an appropriate header and/or pragma? I am very interested in knowing if others are also sharing these behaviors (or not). Also, if anyone has suggestions on any of these issues, I would greatly appreciate it! Thanks! Chris |