[OpenLayers-Users] [SOLVED] Re: WMSGetFeatureInfo - slow response
in IE8 and 9
teknocreator
teknocreator at gmail.com
Mon Mar 12 19:11:00 EDT 2012
[SOLVED] Chart one up to user configuration error here It really helps if
one doesn't copy the actual page <!DOCTYPE ... statement into MapServer's
header template file. For returns of text/html format type, the mapfile for
MapServer needs an html header, body, and footer file. These can be fairly
complex. However, all I wanted was basically:
<html> (header)
<body> (body)
value = [value_0]
</body>
</html> (footer)
These must have a MapServer template line at the beginning that's looks like
a comment but MapServer uses it to identify an html template file.
Unfortunately, in the header, I had for some STRANGE reason copied the
<!DOCTYPE line. I think because perhaps MapServer at first indicated it
didn't look like a MapServer template file when I didn't have the <!--
MapServer Template --> line at the beginning. So, I must've thought the
<!DOCTYPE... was was needed. I found out later that each part needs the
<!-- MapServer Template --> line and didn't take out the <!DOCTYPE line.
The requirement of <!-- MapServer Template --> wasn't directly pointed
out as being required and I found that piece of info elsewhere. But, since
I didn't take out the <!DOCTYPE line, it gave IE grief. Interesting that it
worked in Firefox and Chrome.
Now when I do the query in IE8, takes 3-4 seconds like it does in FF or
Chrome. So sorry bothering the list but at least folks know what not to do.
<quote author="teknocreator">
Andreas,
I'm sorry, but I don't really understand how to carry out what you're
describing. I originally just specified <!DOCTYPE html> for the page
and the same thing occurs. I searched the mapserver code for GetFeatureInfo
and DOCTYPE and I couldn't easily see in the code where this might pertain
to getfeatureinfo, as in doesn't appear to be referring to a dtd when
carrying out the request. The only references to DOCTYPE are in formatting
error exceptions when the WMS request string isn't formatted properly.
I tried a suggestion from W3 about specifying a local area for the dtd.
Unfortunately, I'm unable to install Fiddler on this one machine I'm working
and will have to check later.
However, I also decided to debug within IE8 and there's a lengthy delay in
the OpenLayers code, XMLHttpRequest.js. It seems to loop at least 4 times
in
this._object.onreadystatechange = function() {
and on the 4th
the routine goes through:
if (oRequest.readyState == cXMLHttpRequest.DONE) {
// Free up queue
delete oRequest._data;
fCleanTransport(oRequest);
// BUGFIX: IE - memory leak in interrupted
if (bIE && bAsync)
window.detachEvent("onunload", fOnUnload);
// BUGFIX: Some browsers (Internet Explorer, Gecko) fire OPEN
readystate twice
if (nState != oRequest.readyState)
fReadyStateChange(oRequest);
When it hits fReadyStateChange(oRequest), this is where a delay occurs
before continuing onto the next statement.
After that delay, it moves onto:
nState = oRequest.readyState;
}
And returns the value from MapServer.
In Firefox and with Firebug,
this._object.onreadystatechange = function() {
is not even entered.
I'll still look at this from the MapServer point of view and perhaps check
about bypassing the dtd somehow. But, there looks to be a possible issue
with how this is being handled within OL.
Dave M
Andreas,
I'm sorry, but I don't really understand how to carry out what you're
describing. I originally just specified <!DOCTYPE html> for the page
and the same thing occurs. I searched the mapserver code for GetFeatureInfo
and DOCTYPE and I couldn't easily see in the code where this might pertain
to getfeatureinfo, as in doesn't appear to be referring to a dtd when
carrying out the request. The only references to DOCTYPE are in formatting
error exceptions when the WMS request string isn't formatted properly.
I tried a suggestion from W3 about specifying a local area for the dtd.
Unfortunately, I'm unable to install Fiddler on this one machine I'm working
and will have to check later.
However, I also decided to debug within IE8 and there's a lengthy delay in
the OpenLayers code, XMLHttpRequest.js. It seems to loop at least 4 times
in
this._object.onreadystatechange = function() {
and on the 4th
the routine goes through:
if (oRequest.readyState == cXMLHttpRequest.DONE) {
// Free up queue
delete oRequest._data;
fCleanTransport(oRequest);
// BUGFIX: IE - memory leak in interrupted
if (bIE && bAsync)
window.detachEvent("onunload", fOnUnload);
// BUGFIX: Some browsers (Internet Explorer, Gecko) fire OPEN
readystate twice
if (nState != oRequest.readyState)
fReadyStateChange(oRequest);
When it hits fReadyStateChange(oRequest), this is where a delay occurs
before continuing onto the next statement.
After that delay, it moves onto:
nState = oRequest.readyState;
}
And returns the value from MapServer.
In Firefox and with Firebug,
this._object.onreadystatechange = function() {
is not even entered.
I'll still look at this from the MapServer point of view and perhaps check
about bypassing the dtd somehow. But, there looks to be a possible issue
with how this is being handled within OL.
Dave M
Andreas,
I'm sorry, but I don't really understand how to carry out what you're
describing. I originally just specified <!DOCTYPE html> for the page
and the same thing occurs. I searched the mapserver code for GetFeatureInfo
and DOCTYPE and I couldn't easily see in the code where this might pertain
to getfeatureinfo, as in doesn't appear to be referring to a dtd when
carrying out the request. The only references to DOCTYPE are in formatting
error exceptions when the WMS request string isn't formatted properly.
I tried a suggestion from W3 about specifying a local area for the dtd.
Unfortunately, I'm unable to install Fiddler on this one machine I'm working
and will have to check later.
However, I also decided to debug within IE8 and there's a lengthy delay in
the OpenLayers code, XMLHttpRequest.js. It seems to loop at least 4 times
in
this._object.onreadystatechange = function() {
and on the 4th
the routine goes through:
if (oRequest.readyState == cXMLHttpRequest.DONE) {
// Free up queue
delete oRequest._data;
fCleanTransport(oRequest);
// BUGFIX: IE - memory leak in interrupted
if (bIE && bAsync)
window.detachEvent("onunload", fOnUnload);
// BUGFIX: Some browsers (Internet Explorer, Gecko) fire OPEN
readystate twice
if (nState != oRequest.readyState)
fReadyStateChange(oRequest);
When it hits fReadyStateChange(oRequest), this is where a delay occurs
before continuing onto the next statement.
After that delay, it moves onto:
nState = oRequest.readyState;
}
And returns the value from MapServer.
In Firefox and with Firebug,
this._object.onreadystatechange = function() {
is not even entered.
I'll still look at this from the MapServer point of view and perhaps check
about bypassing the dtd somehow. But, there looks to be a possible issue
with how this is being handled within OL.
Dave M
Andreas,
I'm sorry, but I don't really understand how to carry out what you're
describing. I originally just specified <!DOCTYPE html> for the page
and the same thing occurs. I searched the mapserver code for GetFeatureInfo
and DOCTYPE and I couldn't easily see in the code where this might pertain
to getfeatureinfo, as in doesn't appear to be referring to a dtd when
carrying out the request. The only references to DOCTYPE are in formatting
error exceptions when the WMS request string isn't formatted properly.
I tried a suggestion from W3 about specifying a local area for the dtd.
Unfortunately, I'm unable to install Fiddler on this one machine I'm working
and will have to check later.
However, I also decided to debug within IE8 and there's a lengthy delay in
the OpenLayers code, XMLHttpRequest.js. It seems to loop at least 4 times
in
this._object.onreadystatechange = function() {
and on the 4th
the routine goes through:
if (oRequest.readyState == cXMLHttpRequest.DONE) {
// Free up queue
delete oRequest._data;
fCleanTransport(oRequest);
// BUGFIX: IE - memory leak in interrupted
if (bIE && bAsync)
window.detachEvent("onunload", fOnUnload);
// BUGFIX: Some browsers (Internet Explorer, Gecko) fire OPEN
readystate twice
if (nState != oRequest.readyState)
fReadyStateChange(oRequest);
When it hits fReadyStateChange(oRequest), this is where a delay occurs
before continuing onto the next statement.
After that delay, it moves onto:
nState = oRequest.readyState;
}
And returns the value from MapServer.
In Firefox and with Firebug,
this._object.onreadystatechange = function() {
is not even entered.
I'll still look at this from the MapServer point of view and perhaps check
about bypassing the dtd somehow. But, there looks to be a possible issue
with how this is being handled within OL.
Dave M
--
View this message in context: http://osgeo-org.1560.n6.nabble.com/SOLVED-WMSGetFeatureInfo-slow-response-in-IE8-and-9-tp4563627p4572125.html
Sent from the OpenLayers Users mailing list archive at Nabble.com.
More information about the Users
mailing list