浏览 8408 次
锁定老帖子 主题:xmlhttp能不能发送大量数据?
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
|
|
---|---|
作者 | 正文 |
发表时间:2004-12-13
原因:xmlhttp传递由js封装的xml到servlet中,js的变量不能容纳太大的内容,这个时候该如何处理? 声明:ITeye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
推荐链接
|
|
返回顶楼 | |
发表时间:2004-12-13
引用 js的变量不能容纳太大的内容
这个怎讲? 愿闻其详. |
|
返回顶楼 | |
发表时间:2004-12-13
就象使用js构造结构树一般,如果展开的节点太多了,IE就会变的很缓慢。
JS做前台的controller确实不错,不过要用它去加载大量的数据,恐怕力有不逮。 |
|
返回顶楼 | |
发表时间:2004-12-14
还有一个问题。
我认为通过xmlhttp传递到Servlet中的其实是一个按照XML格式编写的字符串,能不能直接dom对象传递过去? 如果可以,后台该如何接收? |
|
返回顶楼 | |
发表时间:2004-12-15
如果处理大量数据, js在客户端执行可能回造成响应满等等弊端, 不过我觉得大部分应该可以通过改进设计避免这种一次处理大量数据的情况;
至于与后台Servlet至今传递对象的问题, 我只想反问一句, 在两个异构的系统之间传递数据,有比字符串更合适的方法么? |
|
返回顶楼 | |
发表时间:2004-12-15
js和servlet之间是不可能传递对象的,对于复杂的数据结构或者打数据量建议还是采用form方式提交!
|
|
返回顶楼 | |
发表时间:2004-12-23
可以发送的,有时业务需要,不可避免的会出现大量数据的提交,这是我写的一段代码,在实际的项目中解决了大量代码提交的问题,欢迎大家指教:
String.prototype.trim = function();{ return this.replace(/(^[\s]*);|([\s]*$);/g, "");; } var pop; var xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");; function update();{ var arr = new Array();; var node= document.getElementsByTagName("td");; var rcount = 0; for(var i=2;i<node.length-1;i=i+2);{ temp=""; for (var j=0;j<node[i].children.length;j++);{ var temp = temp+(node[i].children[j].value);.trim();+";"; } arr[rcount]=temp.trim();; rcount++; } try{ var DataToSend = "nodes="+URLEncoding(arr);; url = "upRefvalue.jsp"; winpopup();; xmlhttp.onreadystatechange = getReady; xmlhttp.open("POST",url,true);; xmlhttp.setRequestHeader("Content-type","application/x-www-form-urlencoded");; xmlhttp.send(DataToSend);; } catch(e);{ alert(e.description);; } } function streamtochar(StrStream); { var stream = new ActiveXObject("ADODB.Stream");; stream.type = 1; stream.Mode = 3; stream.Open(); ; stream.Write(StrStream);; stream.Position = 0; stream.Type = 2; stream.Charset = "GB2312"; var result = stream.ReadText();; stream.Close();; stream = null; return result; } function getReady();{ if(xmlhttp.readyState == 4);{ if(xmlhttp.status == 200);{ pop.hide();; window.close();; } else{ childDropDown.innerHTML = "数据装载失败,原因:" + xmlhttp.statusText; } } } function winpopup();{ var left = (screen.width-200);/2; var top = screen.height/2; pop = window.createPopup();; pop.document.body.innerHTML = "<body><font size='2'>正在提交数据,请稍候...</font></body>"; pop.show(left,top,300,60,document.body);; } |
|
返回顶楼 | |
发表时间:2004-12-23
从你的代码中,我看不出怎么解决“大”段数据传送的问题?
感觉只是普通的XMLHTTP传送。。。 如果有奥妙之处,还望指出。 |
|
返回顶楼 | |