这段代码,会出错。
var data = '[';
for(var i=0;i<6553;++i)
{
 data += '1,2,3,4,5,6,7,8,9,0,'
}
data += '1,2,3,4,5,6]';
var arr = eval(data);



以下代码能正常运行。
var data = '[';
for(var i=0;i<6553;++i)
{
 data += '1,2,3,4,5,6,7,8,9,0,'
}
data += '1,2,3,4,5]';
var arr = eval(data);

谁知道有什么办法可以绕过这个问题,请告诉我,非常感谢!
Posted on 2007-08-08 22:05 Nemo Wang 阅读(303) 评论(11)  编辑 收藏

Feedback

#1楼    回复  引用  查看    

2007-08-09 11:43 by ╃小〥斌╄      
你第一个出错例子 我测试结果正常阿 在FF下。 而且应该没有你这种说法的, 我负责的一个项目里 eval得内容比你的还要长。。

#2楼    回复  引用  查看    

2007-08-09 12:36 by 布尔      
ie6是这样的至少,可以选择arr.push['1,2,3,4,5,6,7,8,9'],似乎这样好些

#3楼    回复  引用  查看    

2007-08-09 13:04 by birdshome      
拆成多个string呢,每个里面的items少于65535个

#4楼 [楼主]   回复  引用  查看    

2007-08-09 13:06 by Nemo Wang      
@╃小〥斌╄
哥们,你惨了,如果你的用户用IE

#5楼 [楼主]   回复  引用  查看    

2007-08-09 13:07 by Nemo Wang      
@birdshome
stupid

#6楼    回复  引用  查看    

2007-08-09 13:25 by ╃小〥斌╄      
IE 也测试过的, 而且当时的数据量也很大, 没有出现问题。不过现在在公司没有环境 我回家重新看下。

#7楼    回复  引用  查看    

2007-08-10 06:45 by ╃小〥斌╄      
看过自己的~情况不一样, 我没有单个数组里超过的.

我想你可以做个数据聚合, 把相似的提出来, 分出一个数据字典,eval出来的结果再去结合下数据字典吧.

#8楼    回复  引用    

2007-08-10 08:53 by June [未注册用户]
IE7没有你这个问题……升级吧

#9楼    回复  引用    

2007-08-10 09:01 by June [未注册用户]
错了,还是会出错,sorry

#10楼 [楼主]   回复  引用  查看    

2007-08-10 22:27 by Nemo Wang      
@June
跟 IE 版本应该没有关系,错在Microsoft JScript 引擎,哪位哥哥安装了 Vista 的帮忙测试下,看会不会出错!谢谢啊!

#11楼    回复  引用    

2007-08-24 16:25 by 匿名 [未注册用户]
我装的server2008, 4G内存 , 4CPU服务器 , 测试很快, 没有问题

标题  
姓名  
主页
Email (博主才能看到) 
验证码 *  看不清,换一张 [登录][注册]
内容(请不要发表任何与政治相关的内容)  
  登录  使用高级评论  新用户注册  返回页首  恢复上次提交      
该文被作者在 2007-08-09 08:19 编辑过


相关链接:
 


若不是耶和华建造房屋,建造的人就枉然劳力; 若不是耶和华看守城池,看守的人就枉然警醒。