logo       

Re: Eval Limitations in IE7: msg#00230

java.dwr.user

Subject: Re: Eval Limitations in IE7


I'm assuming that you are using DWR 1.1?
I think this is fixed in 2.0

Joe

On 2/28/07, David Marginian < david-IUT0uLTrdk7ZrEr2eKs0CtBPR1lH4CV8@xxxxxxxxxxxxxxxx> wrote:
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
>>
>>


---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe-EyPigyGktj4FDOXUYO6UHQ@xxxxxxxxxxxxxxxx
For additional commands, e-mail: users-help-EyPigyGktj4FDOXUYO6UHQ@xxxxxxxxxxxxxxxx


<Prev in Thread] Current Thread [Next in Thread>
Google Custom Search

News | FAQ | advertise