今天在使用jQuery完善开发的一个对于超文本编辑器的功能的测试过程中,发现了开发程序中的一个小BUG。
(1)开发环境:
技术实现:JQuery+Ajax+Asp.NET 使用方式:aspx下的code behide技术中对于方法使用特性:WebMethod
操作系统:windows Server 2003
浏览器:chrome浏览器
总结:
发现在aspx下使用方法特性WebMethod调用Jquery异步调去,post方式有数据发送和接收存在数据上限的问题。
同样的Jquery的异步post发送方式,在ashx模式下使用正常。
(2) 测试案例:
1.采用一个对html文档编辑的一个增删改查的一个功能。
2.当在html编辑器中输入(/Copy) html格式的文件后
3.点击保存,通过jquery+ajax 的方式,即调用$.ajax发送post数据。
4.数据的主要组成为html文档信息
5.post失败,返回undefined错误。
(3)测试分析
1.程序中使用了escape来进行文本转意,一开始以为是它有问题,可能对于数据大的不能进行正常转意
this.MyBoxText= escape(mybox.get_html());
但是,将escape()中的内容alert后,发现转移的内容基本上是正常的,所以排除javascript escape的问题
2.因为拷贝的html文件比较长,于是,就按照选择局部缩小的方式进行测试排查,然后将定位的html内容单独拷贝出来,继续排查。结果发现也不是超文本的问题。
3.思考:是不是post传递也有限制,于是构建一个文本,打开文本编辑器:
输入内容“A”,并进行大批量复制如下:
终于发现,post该信息的内容也出现了错误,于是将文件中的内容量缩小,并查看,文件的大小,查看方式是将文本保存,后看文本文件的属性,当文档的尺寸小于:128K后,将文档的内容再次复制出来,拷贝到html编译器中,点击保存,结果保存成功!
(4)问题原因:
后来google了一下资料,果然:在aspx下的静态方法的特性WebMethod下的异步调用:post的数据信息也有限制:128K的大小限制
需要注意:
同样的Jquery的异步post发送方式,在ashx模式下使用正常。
这次是亲身体会,记载下来,与各位共享。
详细可查看:http://blog.csdn.net/somat/article/details/158707