jquery+ajax网页被卡死,cpu爆掉!!! - -!

wangxiaolin5288 2011-11-04 03:42:23
先上代码:

function check_username{
var obj = document.getElementById("text_UserName");
$.ajax({
type: 'get',
url: 'zhucecheck',
async :true,
data:{'name' : obj},
dataType:'text',
success: function(responseText) {
switch (responseText) {
case '0':
check_UserName_bool = false;
obj_text_UserName_ok.style.display = "none";
obj_text_UserName_err.style.display = "";
setInnerHTML($('text_UserName_net'), '用户名已经存在,请选用其他名称');
input_error(obj);
break;
case '1':
check_UserName_bool = true;
// 。。。。。。。。。。。。后面也是case.
//。。。。。。。。。。。。。。。。。。。
}
}
})
}

运行的时候,输入用户名后,不管是IE还是FOX都卡死,动不了,FOX提示是:网页脚本占内存太多,请重新载入,打开
任务管理器cpu占用100!!!占用最多的是浏览器和eclipse。
eclipse的控制台无提示错误。
请问大婶们这是什么原因呢?》??!!!
只有这些许20粉了,还请大神不计较。
...全文
585 13 打赏 收藏 转发到动态 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
什么都不能 2011-11-05
  • 打赏
  • 举报
回复
[Quote=引用 9 楼 wangxiaolin5288 的回复:]
JScript code

var un = document.getElementById("text_UserName").value;
$.ajax({

type: 'get'+new Date(),
async :true,
url: 'zhucecheck……
[/Quote]
type: 'get'+new Date(),
这个不能乱写的,一般http请求分为GET,PUT,POST,DELETE常用的就GET和POST
没有你写的那种
对java有感觉 2011-11-05
  • 打赏
  • 举报
回复
obj_text_UserName_ok.style.display = "none";
obj_text_UserName_err.style.display = "";
你的obj是得到的 var obj = document.getElementById("text_UserName");吗?
如果是这样就可以直接写成obj.style.display = "none";
obj..style.display = "";
有可能是你想变样式出错
还有 你在
success: function(responseText) {
这里打印alert(resonseText)是什么
data:{'name' : obj},你把obj传过去是什么意思不懂 传数据一般式$("#id明").var()
错误太多了 你先一步一步解决 报的是什么错误发出来看看
对java有感觉 2011-11-05
  • 打赏
  • 举报
回复
url: 'zhucecheck',
你的url是.do还是.action
wangxiaolin5288 2011-11-05
  • 打赏
  • 举报
回复

var un = document.getElementById("text_UserName").value;
$.ajax({

type: 'get'+new Date(),
async :true,
url: 'zhucecheck',
data:{'name':un},
dataType:'text',
beforeSend: function() {
alert("chenggongh"+un);
},
success: function(msg) {
switch (msg) {
case '0':
check_UserName_bool = false;
obj_text_UserName_ok.style.display = "none";
obj_text_UserName_err.style.display = "";
setInnerHTML($('text_UserName_net'), '用户名已经存在,请选用其他名称');
input_error(obj);
break;


修改到现在,它反而连接不到后台的serverlet了,url我写成绝对路径也没有对!!
还有:直接在浏览器里,后台serverlet是正确的,有反映。而且ajax的beforesend方法能alert信息。现在它没有卡死,但是连接不上了。
请问,这到底是什么原因呢?
什么都不能 2011-11-04
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 cs123456789dn 的回复:]
我觉得有2点给你调试下 没有看你全部代码不能断定
1.你的事件是什么事件
2. async :true,你用同步干什么 既然是异步就用异步 以后别这样用会出现死锁 该为false
[/Quote]
先纠正一下asynchronize 是异步,sychronize是同步
先抛开其他问题,传参有个问题
data:{'name' : obj},
传的是对象,可能会传个[object]给服务器,这个最好抓个包,或者在服务器端打个日志

其它问题因js代码不完整无法分析

建议:先用浏览器直接访问一下地址,看你的servlet是否能正常工作,然后再ajax

对java有感觉 2011-11-04
  • 打赏
  • 举报
回复
我觉得有2点给你调试下 没有看你全部代码不能断定
1.你的事件是什么事件
2. async :true,你用同步干什么 既然是异步就用异步 以后别这样用会出现死锁 该为false
wangxiaolin5288 2011-11-04
  • 打赏
  • 举报
回复

public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
try{

//request.setCharacterEncoding("UTF-8");
//response.setHeader("Charset","UTF-8");
response.setContentType("text/html;charset=GBK");
PrintWriter out =response.getWriter();
String old = request.getParameter("name");

System.out.println("name="+old);
if(old == null || old.length() == 0) {
out.print("2");
// System.out.println("错.00...");
} else {


}
// String name = new String(old.getBytes("GBK"));
//传过去处理。
checkuec cu=new checkuec();
if(cu.checkuec(old)){
out.print("1");
System.out.println("对...");

}else{
System.out.println("错....");
out.print("0");
}

}catch(Exception e){
e.printStackTrace();
}
}

/**
* The doPost method of the servlet. <br>
*
* This me
这是serverlet的代码,没有问题哦,应该
Dong Guo 2011-11-04
  • 打赏
  • 举报
回复
应该是后台服务端程序的问题,把text_UserName的代码发上来看看
gukuitian 2011-11-04
  • 打赏
  • 举报
回复
不要js,先看看调用的java代码吧
wby13579 2011-11-04
  • 打赏
  • 举报
回复
断 点
wby13579 2011-11-04
  • 打赏
  • 举报
回复
看看程序吧,有问题
lcl_account 2011-11-04
  • 打赏
  • 举报
回复
你的程序里肯定有死循环,你仔细检查检查吧。

81,092

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧