Mike,
I made a mistake. The older version of the script engine does not
have this problem. You are right, 5.7 does.
Quoting Mike Cantrell <m.j.cantrell-Re5JQEeQqe8AvxtiuMwx3w@xxxxxxxxxxxxxxxx>:
I'm running the same version. I wonder if it's operating system related
then?
On 2/28/07, David Marginian
<david-IUT0uLTrdk7ZrEr2eKs0CtBPR1lH4CV8@xxxxxxxxxxxxxxxx> wrote:
Mike,
This is not common across IE 7. It depends on the scripting
engine. You can check this via the following:
<html>
<body>
<script>
/*@cc_on @*/
function GetScriptEngineInfo(){
var s;
s = ""; // Build string with necessary info.
s += ScriptEngine() + " Version ";
s += ScriptEngineMajorVersion() + ".";
s += ScriptEngineMinorVersion() + ".";
s += ScriptEngineBuildVersion();
return(s);
}
alert("Javascript version is "+@_jscript_version+" build
"+@_jscript_build);
alert(GetScriptEngineInfo());
</script>
</body>
</html>
I don't see the problem you mention. I am on Version 5.7, build 5730.
Quoting Mike Cantrell <m.j.cantrell-Re5JQEeQqe8AvxtiuMwx3w@xxxxxxxxxxxxxxxx>:
DWR uses a lot of evals to de-serialize data into javascript data
structures. After experiencing several odd errors in IE7 with DWR and
large
sets of data, I started to do some digging. It seems that IE7 limits the
number of variables that can be assigned in a single eval to 327687 (the
max
value of a signed short). If you cross that threshold, it gives you a
generic 'Syntax Error' message.
The following code demonstrates the problem:
function StringBuffer() { this.buffer = []; }
StringBuffer.prototype.append = function(string) {
this.buffer.push(string);
return this;
}
StringBuffer.prototype.toString = function() {
return this.buffer.join("");
}
var max = 32768;
testEval();
function testEval() {
var sb = new StringBuffer();
for (var i=0; i < max; i++) {
sb.append("s" + i + " = 'foo';");
}
eval(sb.toString());
}
I've opened a support case with MS but I don't have high hopes of them
changing the behavior (I'm assuming that it's intentional). The most I'm
hoping for is a little better error message.
With that said, is there any hope of seeing DWR less reliant on large
evals
in the future?
---------------------------------------------------------------------
To unsubscribe, e-mail:
users-unsubscribe-EyPigyGktj4FDOXUYO6UHQ@xxxxxxxxxxxxxxxx
For additional commands, e-mail:
users-help-EyPigyGktj4FDOXUYO6UHQ@xxxxxxxxxxxxxxxx
|