Painfully Slow AJAX with IE6

The title, I am sure, will provoke a reaction "here we go again ..." with many readers. I apologize. I have a problem with Google and I got a phone book. I must say that regarding SSL. Others point to the terrible JS engine in IE. None of the Internet tyrants I found really answered that satisfactorily for me. So I thought that I would send here ...

I am creating a web application mainly developed in Firefox (due to Firebug), tested in Opera, Chrome, Safari and ... IE. A lot of jQuery, a lot of AJAX. The web server is Apache on Win XP. The response to the browser is usually incredibly fast (the web server is on the local network and does nothing), with the exception of IE, which is EXCRUCIATINGLY slow slow.

My code is usually structured in the following lines:

module1= function() { // JS code backing html in div1 }; $div1.load("div1.html",function() { module1(); }); 

That is, the JS code for module1 is known to the browser from the word "go", although I would expect that the compilation of this code will be delayed in all browsers until I call the closing of module1 (), which follows only on successful loading (). Therefore, I can safely assume that the slow JS engine that may be present in IE will show drag and drop (to display div1). However...

What I notice is that although IE6 is about late loading my HTML snippets and all related components (mainly images), when I pull out another browser (to transfer time) and load my site, this browser will freeze until when IE finishes loading. That is, IE completely compresses my Apache server for everyone else.

This makes me think that this is primarily a problem of slow JS interpretation. In fact, there may be problems with hand shake between Apache and IE. I have no evidence of this in Apache logs, so I thought I'd ask.

Does anyone have any ideas? Is there a (known) configuration problem in Apache?

PS: I could add that during these lengthy late-loading efforts, the IE status bar, which I consider to be an unreliable indicator of progress, often shows URLs for my icons (i.e. very small .gif and .png files).

+4
source share
1 answer

While working with IE6 recently, I can point out one thing that helped us. We covered pretty much all jQuery code to add a lot (really a lot) of:

 SetTimeout(function() { <HERE TO REGULAR CODE WE HAD>,0}); 

This power redraws events on IE6 (some kind of new env execution with redrawing, if I understand IE6 js well) and at least the user can see parts of an already loaded page. Very useful for load callbacks. Thus, at least the user's perception is better, page blocks appear, and the user's perception of speed is better. But it seems that all the time in real time was better.

About apache IE6 interactions, since your apache server is not on your computer, but on the local network you should try:

  • check the website from another computer, not where IE6 works (works)
  • activate mod_status and check the url / status to see if IE6 is used or only one

In IE6, you may experience problems with Keepliave queries or with restrictions on the number of concurrent queries that it can run on a single server. But for this we need additional information about HTTP traffic when a problem occurs (and the server status is at least good, also check Extended status).

0
source

All Articles