Ajax 板


LINE

※ 引述《ayuiop (美加航空公司)》之铭言: : 我是只有看一点w3schools.com的说明的ajax新手 : 我写了这样的script : == : function ajax(method,des,tf,send) : { : var text : var xmlHttp=ajaxFunction(); : if(xmlHttp){ : xmlHttp.onreadystatechange=function(){ : if(xmlHttp.readyState==4){ : text=xmlHttp.responseText; : //return txt 这里return不出去,会return sub 而非function : } : } 底下的ajax()说的是你写的function :) 因为 xmlHttp.onreadystatechange() 和 ajax() 是不同步的 所以你不能透过ajax() 去取得回传的内容。 简单来说,你的ajax已经执行到最後一行的时候, 你的 onReadyStateChange 应该还没执行完, 而且 onReadyStateChange() , return的当然是要透过xmlHttp去呼叫才会取得。 比方说 function test(){ var c =new function(){ return "hi"; } c(); //并不等同於在这里写 return "hi" } 这样并不会造成test取得"hi"这个回传值, 所以你的 onReadyStateChange() 并不会回传值给你的ajax(); 重点是也没有必要。@@ ──────────────────────────────── 但是你可以改写成这样。 xmlHttp.onreadystatechange=function(){ if(xmlHttp.readyState==4){ text=xmlHttp.responseText; document.getElementById('mes').innerHTML=txt; } } 或者像我是写成这样。 http://tony1223.no-ip.info/mylib/AJAX_tony1223.js 使用范例 /* 这区用来摆参数 , [name]=value */ var pointObj=new Object(); pointObj['mapGroup']=1; pointObj['name']=name; /* 此处写网页没有出error时的处理流程 */ var cb_ok=function(response){ document.getElementById("msg").innerHTML=response; }; /* 此处写 无法显示网页 等 error的处理流程 */ var cb_err=function(state,str){ document.getElementById("msg").innerHTML='新增时发生错误!!错误代码:' +state+'<br />'+unescape(str)); } send_AJAX_Form("XXX.asp",pointObj,"POST",cb_ok,cb_err); /*url*/ /*values*/ /*method*/ /*POST or GET */ : xmlHttp.open(method,des,tf); : xmlHttp.send(send); : return text //这里return会变成未定义 : } : } : function f(){ : txt=ajax("GET","test.php",true,null); : document.getElementById('mes').innerHTML=txt; : } : == : 我可以确定我的ajaxFunction没有错误 : 我从firebug可以看到我的responseText确实是我所需要的 : 但是我的document.getElementById('mes').innerHTML=txt; : 这里面的txt却是undefined : 看起来好像是网路传输会lag的关系 : 请问该怎麽解决这个似乎很基本的问题呢... -- String temp="relax"; | Life just like programing while(buringlife) String.forgot(temp); | to be right or wrong while(sleeping) brain.setMemoryOut(); | need not to say stack.push(life.running); | the compiler will stack.push(scouting.buck()); | answer your life stack.push(bowling.practice()); | Bone everything --



※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 220.134.27.68 ※ 编辑: TonyQ 来自: 220.134.27.68 (03/21 21:00) ※ 编辑: TonyQ 来自: 220.134.27.68 (03/21 21:02)
1F:推 ayuiop:详尽的解说,非常感谢 我是上上礼拜才开始碰类似js形式语 03/21 23:48
2F:→ ayuiop:言的,看来我还需要多多历练XD 03/21 23:49
3F:推 ayuiop:後来我发现用物件存参数的方式原理和161篇很有关系:P 03/24 22:27
4F:推 TonyQ:呵 是呀, 不过平常这种leak极微小可以忽略, 03/25 18:18
5F:→ TonyQ:而且做完之後,setNull就会被释放了。:P 03/25 18:19
6F:→ TonyQ:Object可以用列举的方式取得,好用太多了。XD 03/25 18:19
7F:推 ayuiop:请问为何需要parseInt(escape(valueObj[i]).length) 04/05 13:31
8F:→ ayuiop:而不直接取用length就好? 04/05 13:32







like.gif 您可能会有兴趣的文章
icon.png[问题/行为] 猫晚上进房间会不会有憋尿问题
icon.pngRe: [闲聊] 选了错误的女孩成为魔法少女 XDDDDDDDDDD
icon.png[正妹] 瑞典 一张
icon.png[心得] EMS高领长版毛衣.墨小楼MC1002
icon.png[分享] 丹龙隔热纸GE55+33+22
icon.png[问题] 清洗洗衣机
icon.png[寻物] 窗台下的空间
icon.png[闲聊] 双极の女神1 木魔爵
icon.png[售车] 新竹 1997 march 1297cc 白色 四门
icon.png[讨论] 能从照片感受到摄影者心情吗
icon.png[狂贺] 贺贺贺贺 贺!岛村卯月!总选举NO.1
icon.png[难过] 羡慕白皮肤的女生
icon.png阅读文章
icon.png[黑特]
icon.png[问题] SBK S1安装於安全帽位置
icon.png[分享] 旧woo100绝版开箱!!
icon.pngRe: [无言] 关於小包卫生纸
icon.png[开箱] E5-2683V3 RX480Strix 快睿C1 简单测试
icon.png[心得] 苍の海贼龙 地狱 执行者16PT
icon.png[售车] 1999年Virage iO 1.8EXi
icon.png[心得] 挑战33 LV10 狮子座pt solo
icon.png[闲聊] 手把手教你不被桶之新手主购教学
icon.png[分享] Civic Type R 量产版官方照无预警流出
icon.png[售车] Golf 4 2.0 银色 自排
icon.png[出售] Graco提篮汽座(有底座)2000元诚可议
icon.png[问题] 请问补牙材质掉了还能再补吗?(台中半年内
icon.png[问题] 44th 单曲 生写竟然都给重复的啊啊!
icon.png[心得] 华南红卡/icash 核卡
icon.png[问题] 拔牙矫正这样正常吗
icon.png[赠送] 老莫高业 初业 102年版
icon.png[情报] 三大行动支付 本季掀战火
icon.png[宝宝] 博客来Amos水蜡笔5/1特价五折
icon.pngRe: [心得] 新鲜人一些面试分享
icon.png[心得] 苍の海贼龙 地狱 麒麟25PT
icon.pngRe: [闲聊] (君の名は。雷慎入) 君名二创漫画翻译
icon.pngRe: [闲聊] OGN中场影片:失踪人口局 (英文字幕)
icon.png[问题] 台湾大哥大4G讯号差
icon.png[出售] [全国]全新千寻侘草LED灯, 水草

请输入看板名称,例如:Tech_Job站内搜寻

TOP