somucheoodsoc箱是什么意思思?

“临.兵.斗.者.皆.阵.列.在.前”是什么意思?_百度知道
“临.兵.斗.者.皆.阵.列.在.前”是什么意思?
提问者采纳
道门里对此九字的诀法我还没有见过,常当视之。阵,在下没有否定他们的存在呀,与之相对应的九个手印(说是九个,可以驱吉避凶,口念奇门九字诀,考试前一天用这个方法;妙&天&字---用於海岸戏水、斗、前、火,分别为。  奇门九字诀  抱朴子曰,再於其中书&quot,然后随意翻开书本;字,百步不可回头  是中国古代思想的一种,口念奇门九字诀。  兵 者 阵 行  │ │ │ │  临 ——┼—┼—┼—┼——  │ │ │ │  斗 ——┼—┼—┼—┼——  │ │妙│ │  皆 ——┼—┼—┼—┼——  │ │ │ │  列 ——┼—┼—┼—┼——  │ │ │ │  前 ——┼—┼—┼—┼——  │ │ │ │  注意事项;字---用於各类比赛  (9)看病书&quot,(葛洪者。)前、普贤三昧印),口念一字;景&遁&quot?  其实这九个字源于东晋葛洪的《抱朴子*登涉篇》。  疑问、外缚印,画四纵五横,避免伤及无辜,兵、组、皆,念此九字,再画上四纵五横;字---用於男女朋友交往时  (3)市贾书&quot、烈、土、日轮印和宝瓶印(隐形印)。  ◎考前猜题  愈接近考试,吹在手心,但以我看来。在、外狮子印。  ◎读书增加记忆力的方法  对著所要读的书本用剑指画四纵五横,右手剑指?  临、水;临兵斗者皆阵列前行&quot,结果第二天考卷一发下来;通&quot,至此、者,令心想事成,再写个&quot,在(一作“于”),代表心电感应或隐身,入山宜知六甲秘祝。  ◎美梦成真的方法  把梦中情人的名字;字---用於夜晚外出时  (7)入众书&quot、列、前九字,就可以找到停车位;&#39。”  意思是说、皆;停&利&quot。在抄录这九个字时,大概是被两者的繁写体搞混的缘故,会有不可思议的效果;鬼&quot,代表宇宙共鸣,凡此九字长念之,可令一觉到天亮,可惜我对密宗的心法所知不多?  好好好,右(手)捻剑诀;&#39。  这九个字分别的意思是:&quot。  兵 者 阵 行  │ │ │ │  临 ——┼—┼—┼—┼——  │ │ │ │  斗 ——┼—┼—┼—┼——  │ │景│ │  皆 ——┼—┼—┼—┼——  │ │ │ │  列 ——┼—┼—┼—┼——  │ │ │ │  前 ——┼—┼—┼—┼——  │ │ │ │  ◎生活上的妙法之一  吃鱼的时候不小心被鱼刺 到喉咙怎堋办、皆、兵:  曾有一位林小姐应徵工作(电脑资讯相关行业),阵,日本真的有这种阴阳师,以剑指对著方向盘;字---用於饮酒避免宿醉时  (11)入水书&quot?  回答,手画一笔;字---用於探病求医时  (10)吃酒书&quot:就好比电视剧里的人物可以一年到头不用换衣服一样,心想希望停车的地方,斗、斗,用红笔写在黄纸上,也许是自然出现过,可以从中化出恒河沙数的手印来,杀伤力亦强、行”误抄成“阵,诸邪不侵;字---用於游戏时  (6)夜行书&quot,只是对他们的九字真言提出一点疑问罢了,画上四纵五横,宣扬采药炼丹,搭船前;◇&quot、在?此时以剑指对著喉咙画四纵五横,代表能量,再写个&quot、在,亦可保平安,(一作“洞”)者、大金刚轮印;字---用於生意买卖时  (4)出行书&quot、者、遁甲出行诀  此法至诚闭气吸东方生气一口、列:  把床移至阳宅延年方(见阳宅篇)、阵。  八、斗;合&#92:不动根本印(独占印,皆,念此九字,《孔雀王》,以剑指对书本施四纵五横法,代表危机感应,为免伤及无辜,又名奥义九字切,相信如果有密宗上师结印的话,可增加理解力及记忆力:就是我们熟知的金,旅行时  (5)博戏书&quot。  如欲找停车位。者。  (1)见官书&停&quot。(五元素,列(一作“裂”),很快就可以美梦成真、内狮子印、前”而沿用至今;少&quot,摺好放在枕头下,运气不好可以转运,您啊,皆数组前行。  《临;弟子某某因故施法,竟然有百分之八十是昨天所读到的;字,无所不避、在、兵,漫画作品也是如此,代表光明:即使抄错了也可以用来驱邪么,您别急呀……  临、列;,可以剑指对空书四纵五横。  案例。  施法前务请先默祷&quot,前》最早见于道家《抱扑子》内篇,就可以辟除一些邪恶,其实不过是个虚名,重复这个动作;强&quot,代表复原,最后再在中间以意念输入你的愿望,好象是叫九字真言什么的,括号内是异译法)分别为,写在左手心上、前  九字真言,书字即行。  ◎奇门九字诀用法、阵;安&quot、智拳印(知券印),把“数,每个字都有相应的手印配合。  ◎增加人缘的方法。  兵 者 阵 行  │ │ │ │  临 ——┼—┼—┼—┼——  │ │ │ │  斗 ——┼—┼—┼—┼——  │ │安│ │  皆 ——┼—┼—┼—┼——  │ │ │ │  列 ——┼—┼—┼—┼——  │ │ │ │  前 ——┼—┼—┼—┼——  │ │ │ │  ◎增加考运的妙法  以剑指在准考证上空书四纵五横。  ◎睡不好怎堋办  用红笔黄纸画四纵五横;字;,结印的手法十分复杂,代表身心稳定。  在外住宿若怕房间不乾净;字---见主管或主官  (2)求婚书&#92、木,可以让你早日结成好姻缘:  口中常念此九字,常念这九个字,一定很有力量;乾&字---用於在人群中不被发现  (8)入阵书&quot、前  经常在一些收妖除灵的题材里看到这九字密宗真言,代表对五元素的控制,一面对书本愈不知道重点在那 :临,故使用时宜心存善念。  ◎找停车位的方法  车子要到达目的地前五分钟到十分钟:  左(手)捻天罡,再在中间写个&quot,乃东晋时结合儒家思想改造道教。  兵 者 阵 行  │ │ │ │  临 ——┼—┼—┼—┼——  │ │ │ │  斗 ——┼—┼—┼—┼——  │ │◎│ │
◎ 书入意念  皆 ——┼—┼—┼—┼——  │ │ │ │  列 ——┼—┼—┼—┼——  │ │ │ │  前 ——┼—┼—┼—┼——  │ │ │ │  四纵五横法施法要诀,又名奥义九字,就将就着看吧,可保一夜安眠到天亮,一定有相应的指诀,很快就可以心想事成;字即可,无所不辟;字---用於外出、兵,上车前。  如出门在外、者,《东京巴比伦》……  那么这九字密宗真言到底是什么意思呢,是第几页就读那一段,后来我又在密宗手印中见到、长生不老的人,握拳,以右手剑指空书四纵五横,往往也有人将“阵”做“陈”字:临,十次有九次会成功,代表时空控制。  ◎心想事成的方法  把你的愿望用红笔写在黄纸上,道教变成为封建统治服务的宗教)“临兵斗者;字,敬请无冤无仇者先回避&quot。兵、在、内缚印。斗、阵:  此法最是殊胜,摺好放在枕头下。皆,并在其中写个&quot。列!什么什么您说什么、四纵五横法  此法可以趋吉避凶,祝曰。  七,如《美少女战士》,日本神道教常用;龙&quot
其他类似问题
按默认排序
其他2条回答
com/Article/comic/comicart//Article/comic/comicart/20礌琅百赶知非打馁://www
唱~找到拉,
备斟我是你的灰姑娘都愚
等待您来回答
下载知道APP
随时随地咨询
出门在外也不愁蚩尤是什么意思?_百度知道
蚩尤是什么意思?
蚩尤是什么意思?关于蚩尤有什么历史吗?
提问者采纳
  黄帝打败炎帝之后,许多诸侯都想拥戴他当天子。可是炎帝的子孙不甘心向黄帝臣服,几次三番挑起战争,尤以蚩尤为甚。  蚩尤是炎帝的孙子。据说,蚩尤生性残暴好战,他有八十一个兄弟,都是能说人话的野兽,一个个铜头铁额,用石头铁块当饭吃。蚩尤原来臣属于黄帝,可是炎帝战败后,蚩尤在庐山脚下发现了铜矿,他们把这些铜制成了剑、矛、戟、盾等兵器,军威大振,便起野心要为炎帝报仇了。蚩尤联合了风伯、雨师和夸父部族的人,气势汹汹地来向黄帝挑战。  黄帝生性爱民,不想战伐,一直想劝蚩尤休战。可是蚩尤不听劝告,屡犯边界。黄帝不得已,叹息道:“我若失去了天下,蚩尤掌管了天下,我的臣民就要受苦了。我若姑息蚩尤,那就是养虎为患了。现在他不行仁义,一味侵犯,我只有惩罚不义!”于是黄帝亲自带兵出征,与蚩尤对阵。  黄帝先派大将应龙出战。应龙能飞,能从口中喷水,它一上阵,就飞上天空,居高临下地向蚩尤阵中喷水。刹那间,大水汹涌,波涛直向蚩尤冲去。蚩尤忙命风伯雨师上阵。风伯和雨师,一个刮起满天狂风,一个把应龙喷的水收集起来,反过来两人又施出神威,刮风下雨,把狂风暴雨向黄帝阵中打去。应龙只会喷水,不会收水,结果,黄帝大败而归。  不久,黄帝重整军队,重振军威,再次与蚩尤对阵。黄帝一马当先,领兵冲入蚩尤阵中。蚩尤这次施展法术,喷烟吐雾,把黄帝和他的军队团团罩住。黄帝的军队辨不清方向,看不清敌人,被围困在烟雾中,杀不出重围。就在这危急关头,黄帝灵机一动,猛然抬头看到了天上的北斗星,斗柄转动而斗头始终不动,他便根据这个原理发明了指南车,认定了一个方向,黄帝这才带领军队冲出了重围。  这样,黄帝和蚩尤一来二去打了七十一仗,结果是黄帝胜少败多,黄帝心中非常焦虑不安。这一天,黄帝苦苦思索打败蚩尤的方法,不知不觉昏然睡去,梦见九天玄女交给他一部兵书,说:“带回去把兵符熟记在心,战必克敌!”,说罢,飘然而去。黄帝醒后,发现手中果真有一本《阳符经》。打开一看,只见上面画着几个象形文字“天一在前,太乙在后。”黄帝顿然悟解,于是按照玄女兵法设九阵,置八门,阵内布置三奇六仪,制阴阳二遁,演习变化,成为一千八百阵,名叫“天一遁甲”阵。黄帝演练熟悉,重新率兵与蚩尤决战。  为了振奋军威,黄帝决定用军鼓来鼓舞士气。他打听到东海中有一座流波山,山上住着一头慢兽,叫“夔”,它吼叫的声音就像打雷一样。黄帝派人把夔捉来,把它的皮剥下来做鼓面,声音震天响。黄帝又派人将雷泽中的雷兽捉来,从它身上抽出一根最大的骨头当鼓槌。传说这夔牛鼓一敲,能震响五百里,连敲几下,能连震三千八百里。黄帝又用牛皮做了八十面鼓,使得军威大振。  为了彻底打败蚩尤,黄帝特意召来女儿女魃助战。女魃是个旱神,专会收云息雨。平时住在遥远的昆仑山上。  黄帝布好阵容,再次跟蚩尤决战。两军对阵,黄帝下令擂起战鼓,那八十面牛皮鼓和夔牛皮鼓一响,声音震天动地。黄帝的兵听到鼓声勇气倍增;蚩尤的兵听见鼓声丧魂失魄。蚩尤看见自己要败,便和他的八十一个兄弟施起神威,凶悍勇猛地杀上前来。两军杀在一起,直杀得山摇地动,日抖星坠,难解难分。  黄帝见蚩尤确实不好对付,就令应龙喷水。应龙张开巨口,江河般的水流从上至下喷射而出,蚩尤没有防备,被冲了个人仰马翻。他也急令风伯雨师掀起狂风暴雨向黄帝阵中打去,只见地面上洪水暴涨,波浪滔天,情况很紧急。这时,女魃上阵了,她施起神施,刹那间从她身上放射出滚滚的热浪,她走到哪里,哪里就风停雨消,烈日当头。风伯和雨师无计可施,慌忙败走了。黄帝率军追上前去,大杀一阵,蚩尤大败而逃。  蚩尤的头跟铜铸的一样硬,以铁石为饭,还能在空中飞行,在悬崖峭壁上如走平地,黄帝怎么也捉不住他。追到冀州中部时,黄帝灵感突现,命人把夔牛皮鼓使劲连擂九下,这一下,蚩尤顿时魂丧魄散,不能行走,被黄帝捉住了。黄帝命人给蚩尤戴上枷栲,把他杀了。害怕他死后还作怪,便把他的身和首埋在了两个地方。蚩尤死之后,他身上的枷栲才被取下来抛掷在荒山上,变成了一片枫树林,那每一片枫叶,都是蚩尤枷栲上的斑斑血迹。  黄帝打败蚩尤后,诸侯都尊奉他为天子,这就是轩辕(黄帝的名字)黄帝。轩辕黄帝带领百姓,开垦农田,定居中原,奠定了华夏民族的根基。
提问者评价
谢谢你了,呵呵,给你的分
其他类似问题
按默认排序
其他3条回答
中国神话传说中上古东方九黎族部落首领,又传为主兵之神。据说他有兄弟81人,能呼风唤雨,以金作兵器,常以兵作乱。他们勇敢善战,威震天下。黄帝联合炎帝部落,与蚩尤大战于涿鹿,今河北涿鹿南,之野。据说蚩尤作战时能呼风唤雨,制作大雾,令黄帝兵迷失方向,不能战胜。后来黄帝发明了指南车,能在大雾中辨明方向,才将蚩尤战败擒杀。蚩尤死后,升天为星宿。蚩尤活动于今河北、山东、河南及安徽北部地区。传说部分九黎族在蚩尤被战败之后,南下与土著苗蛮所属部落杂居融合在一起。因此,又称蚩尤是南方苗瑶民族的祖先。
蚩尤是以狗为图腾的。从民俗学的角度来讲,“尤”字就是一只大耳狗的形象。
战神蚩尤,汉高祖刘邦所崇
参考资料:
蚩尤的相关知识
等待您来回答
您可能关注的推广
下载知道APP
随时随地咨询
出门在外也不愁有人知道orz是什么意思?_百度知道
有人知道orz是什么意思?
提问者采纳
你为何这样对我」的动作,於是 orz 就开始流行了. ★rz ←武藤游戏;o ← 右向逆天 迷你形.,并没有人对这个符号起个名字....,又有人发现. On 这是婴儿. __Drz ← 爆脑浆、日志网站...,用法也很多. or2 这是屁股特别翘的. sto 换一边跪. ○rz 这是大头..,原本指的是网路上流行的表情符号..,低着头. OTz 这是举重选手吧.,更有 orz 的日志软体. 崮rz 这是囧国国王,虽然简单却很传神 在初期的时候. orZ 这是下半身肥大.: sto ← 右向 orz ← 左向 ots ← 左向逆天 z_&#47,你把下面这个帖子看完就基本知道怎么用Orz这个词了,就不可考了.. 曾rz ←假面超人. 莔rz 这是囧国皇后。=) ●rz 这是黑人头先生....: _| ̄|○ ← 右向 ○| ̄|_ ← 左向 ○|_| ̄ ← 逆天 半形. 口rz ← 豆腐先生.! orz 真是魅力无法档啊 . Or2 这是头大身体小的翘屁股., 后来., 据说是某个餐厅的座垫上绣着这五个字: STO ← 右向 OTZ ← 左向 OLS ← 左向逆天 ZJO ← 右向逆天 半形小写.。 后来。 ^_^ =Orz=Orz=Orz=Orz=Orz=Orz=Orz=Orz=Orz=Orz=Orz=Orz=Orz= 这个符号叫失意体前屈 失意体前屈..,失意体前屈也是后来才出现的. Xrz 这是刚被爆头完.... crz 这是机车骑士:_| ̄|○ 看起来像是一个人跪倒在地上...... st冏 楼上的他老婆吗..: no ← 右向 on ← 左向 ou ← 左向逆天 uo ← 右向逆天 其他 orz 这是小孩.,一副「天啊. 囧rz 这是念ㄐㄩㄥˇOrz这个词就比较复杂了. OTZ 这是大人.. orz 各种失意体前屈的表示法 全形.....,叫做失意体前躯.. 商rz 这是戴斗笠的囧,至於再之前又是谁想到的,用简单的三个英文字也可以表现这个动作.. (=. 6rz 这是魔人普乌.
提问者评价
其他类似问题
按默认排序
其他2条回答
orz 是不是很像一个人跪在那里- -
等待您来回答
您可能关注的推广
下载知道APP
随时随地咨询
出门在外也不愁人们说的两厢、三厢车是什么意思?_百度知道
人们说的两厢、三厢车是什么意思?
提问者采纳
人们理解的单厢车则多指雷诺风景。所谓单厢车,结合两厢车和面包车的特点、两厢和三厢车都没有明确的定义,在发生正面撞击时没有缓冲:单厢,但如果你仔细比较一下单厢车的代表毕加索与两厢车的代表高尔夫你就会发现有区别的地方还是很多。通俗地说,北美和欧洲已禁止生产这种原始形态的“单厢车”,这种情况下实际上乘员舱和后备行李舱是一体的;而两厢车则指少了突出的“屁股的轿车,既可载客、神龙毕加索以及丰田大霸王这类MPV车型,大的有丰田海狮,所谓的三厢车就是指平时常见的桑塔纳。由于严格的安全法规,除日本外,例如街上经常可以见到的富康、捷达、乘员舱,并且这种分隔是固定不可逆转的。世界上最成功的单厢车是雷诺风景和雪铁龙的毕加索。是我们非常熟悉的面包车型,但这种车也有个致命的缺点、三菱得利卡等。单厢车虽然与两厢车越来越接近,也可拉货,如果整车的发动机舱。两厢车指车身有后备行李舱但没有突出车体、奥迪A6这些前面有“鼻子”(发动机舱),这种车空间较大,后面有“屁股”(后备行李舱)的轿车,蘖矛曹皇丨郝鄂窃小的有我们熟悉的长安面包车  《汽车知识》答复。但受该车型的启发、后备行李舱全部被分隔开、POLO等车型,很实惠,其实是面包车(厢式车)的高级变种,只是借助后排座椅等分隔开,那么就应该算是三厢车。  从结构上来说,就是没有单独的引擎舱,产生出了颇具魅力的新型的“单厢车”
其他类似问题
三厢车的相关知识
按默认排序
其他1条回答
等待您来回答
您可能关注的推广回答者:
下载知道APP
随时随地咨询
出门在外也不愁ajax_百度百科
?ajax开发???? 收藏 查看&ajax本词条缺少信息栏,补充相关内容使词条更完整,还能快速升级,赶紧来吧!
AJAX即Asynchronous Javascript And XML异步JavaScript和XML是指一种创建交互式应用的网页开发技术AJAX = 异步 和的子集AJAX 是一种用于创建快速动态网页的技术通过在后台与服务器进行少量数据交换AJAX 可以使网页实现异步更新这意味着可以在不重新加载整个网页的情况下对网页的某部分进行更新传统的网页不使用 AJAX如果需要更新内容必须重载整个网页面
AJAX 指异步及AsynchronousJavascript+XML
国内翻译仅常为
和阿 贾克斯足球队同音这个术语源自描述从基于 Web 的应用到基于数据的应用的转换在基于数据的应用中用户需求的数据如联系人列表可以从独立于实际网页的服务端取得并且可以被动态地写入网页中给缓慢的Web应用体验着色使之像应用一样
Ajax 的核心是 JavaScript 对象 XmlHttpRequest该对象在 Internet Explorer 5 中首次引入它是一种支持异步请求的技术简而言之XmlHttpRequest 使您可以使用 JavaScript 向服务器提出请求并处理响应而不阻塞用户不是一种新的语言而是一种用于创建更好更快以及交互性更强的 Web 应用程序的技术
使用Javascript向服务器提出请求并处理响应而不阻塞用户核心对象XMLHTTPRequest通过这个对象您的 JavaScript 可在不重载页面的情况与服务器交换数据
AJAX 在浏览器与 Web 服务器之间使用异步数据传输HTTP 请求这样就可使网页从服务器请求少量的信息而不是整个页面
AJAX 可使因特网应用程序更小更快更友好
AJAX 是一种独立于 Web 服务器软件的浏览器技术 AJAX 基于下列 Web 标准
JavaScript在 AJAX 中使用的 Web 标准已被良好定义并被所有的主流浏览器支持AJAX 应用程序独立于浏览器和平台
Web 应用程序较桌面应用程序有诸多优势它们能够涉及广大的用户它们更易安装及维护也更易开发
不过因特网应用程序并不像传统的桌面应用程序那样完善且友好
通过 AJAX因特网应用程序可以变得更完善更友好该技术在1998年前后得到了应用允许客户端发送请求XMLHTTP的第一个组件由Outlook Web Access小组写成该组件原属于Exchange Server并且迅速地成为了Internet Explorer 4.0的一部分部分观察家认为Outlook Web Access是第一个应用了Ajax技术的成功的商业并成为包括Oddpost的网络邮件产品在内的许多产品的领头羊但是2005年初许多事件使得Ajax被大众所接受Google在它著名的交互应用程序中使用了异步通讯如Google地图Google搜索建议Gmail等Ajax这个词由Ajax: A New Approach to Web Applications一文所创该文的迅速流传提高了人们使用该项技术的意识另外对Mozilla/Gecko的支持使得该技术走向成熟变得更为易用
AJAX前景非常乐观可以提高系统性能优化用户界面AJAX现有直接框架AjaxPro可以引入AjaxPro.2.dll文件可以直接在前台页面JS调用页面的方法但此框架与FORM验证有冲突另外微软也引入了AJAX组件需要添加AjaxControlToolkit.dll文件可以在控件列表中出现相关控件许多重要的技术和AJAX开发模式可以从现有的知识中获取例如在一个发送请求到服务端的应用中必须包含请求顺序优先级超时响应错误处理及回调其中许多元素已经在中包含了同时随着技术的成熟还会有许多地方需要改进特别是UI部分的易用性
AJAX开发与传统的C/S开发有很大的不同这些不同引入了新的编程问题最大的问题在于易用性由于AJAX依赖的JavaScript和XML浏览器的兼容性和支持的标准也变得和JavaScript的运行时性能一样重要了这些问题中的大部分来源于浏览器和技术的组合因此必须理解如何才能最好的使用这些技术
综合各种变化的技术和强耦合的客户服务端环境AJAX提出了一种新的开发方式AJAX开发人员必须理解传统的MVC架构这限制了应用层次之间的边界同时开发人员还需要考虑C/S环境的外部和使用AJAX技术来重定型MVC边界最重要的是AJAX开发人员必须禁止以页面集合的方式来考虑应用而需要将其认为是单个页面一旦UI设计与服务架构之间的范围被严格区分开来后开发人员就需要更新和变化的技术集合了随着AJAX迅速地引人注目起来我想开发人员对这种技术的期待也迅速地增加就像任何新技术AJAX的兴旺也需要一整个开发工具/编程语言及相关技术系统来支撑JSer[1]是国人开发的一款全功能的开源脚本框架使用JSer可以极其方便的进行AJAX操作
以下代码演示了如何使用JSer发送一个异步的AJAX POST请求
JSer.url(&save.jsp&).set({
key:&test&,
name:&book&/*向save.jsp程序发送两个POST参数分别是key=test,name=book*/
}).ajax({//执行AJAX请求
method:'post',//POST方式发送请求
success:function(d){//AJAX请求成功时执行此回调函数
alert(d);//弹出返回提示
Web标准standards-based presentationXHTML+CSS的表示
使用Document Object Model进行动态显示及交互
使用 XML 和进行数据交换及相关操作
使用 XMLHttpRequest 进行异步数据查询检索
使用 JavaScript 将所有的东西绑定在一起参见Ajax的提出者Jesse James Garrett的原文,原文题目Ajax: A New Approach to Web Applications
类似于DHTML或LAMPAJAX不是指一种单一的技术而是有机地利用了一系列相关的技术事实上一些基于AJAX的派生/合成式derivative/composite的技术正在出现如AFLAX
AJAX的应用使用支持以上技术的web浏览器作为运行平台这些浏览器包括
及但是Opera不支持XSL格式也不支持XSLT
JavaScript
如名字所示AJAX的概念中最重要而最易被忽视的是它也是一种编程语言JavaScript是一种粘合剂使AJAX应用的各部分集成在一起在大部分时间JavaScript通常被服务端开发人员认为是一种企业级应用不需要使用的东西应该尽力避免这种观点来自以前编写JavaScript的经历繁杂而又易出错的语言类似的它也被认为将应用逻辑任意地散布在服务端和客户端中这使得问题很难被发现而且代码很难重用在AJAX中JavaScript主要被用来传递用户界面上的数据到服务端并返回结果XMLHttpRequest对象用来响应通过HTTP传递的数据一旦数据返回到客户端就可以立刻使用DOM将数据放到网面上
XMLHttpRequest
XMLHttpRequest对象在大部分浏览器上已经实现而且拥有一个简单的接口允许数据从客户端传递到服务端但并不会打断用户当前的操作使用XMLHttpRequest传送的数据可以是任何格式虽然从名字上建议是XML格式的数据
开发人员应该已经熟悉了许多其他XML相关的技术XPath可以访问XML文档中的数据但理解XML DOM是必须的类似的XSLT是最简单而快速的从XML数据生成下的子集HTML或XML的方式许多开发人员已经熟悉Xpath和XSLT因此AJAX选择XML作为数据交换格式是有意义的XSLT可以被用在客户端和服务端它能够减少大量的用JavaScript编写的
为了正确的浏览AJAX应用CSS是一种AJAX开发人员所需要的重要武器CSS提供了从内容中分离应用样式和设计的机制虽然CSS在AJAX应用中扮演至关重要的角色但它也是构建跨浏览器应用的一大阻碍因为不同的浏览器厂商支持各种不同的CSS级别
但不像在客户端在服务端AJAX应用还是使用建立在如Java,.Net和PHP语言基础上机制并没有改变这个领域中的主要方式
既然如此我们对Ruby on Rails框架的兴趣也就迅速增加了在一年多以前Ruby on Rails已经吸引了大量开发人员基于其强大功能来构建Web和AJAX应用虽然还有很多快速应用开发工具存在Ruby o n Rails看起来已经储备了简化构建AJAX应用的能力
调试与兼容调试问题
在实际构建AJAX应用中你需要的不只是既然JavaScript是非编译的它可以容易地编写和运行在浏览器中然而许多工具提供了有用的扩展如语法高亮和智能完成
不同的IDE提供了对JavaScript支持的不同等级来自JetBrains的IntelliJ IDEA是一个用来JavaScript开发的更好的IDE虽然许多开发人员也喜欢Microsofts Visual Studio产品允诺会在最新的版本中改善对AJAX的支持Eclipse包含了两个免费的JavaScript编辑器和一个商业的来自ActiveStat的Komodo IDE
另一个JavaScript和AJAX开发中的问题是调试困难不同的浏览器提供不同的通常是隐藏的运行时错误信息而JavaScript的缺陷如双重赋值通常是由于缺少数据类型使得调试更加困难在AJAX的开发中调试就更复杂了因为其需要标识究竟是客户端还是服务端产生的错误在过去JavaScript调试的方法是删除所有代码然后一行行的增加直到错误出现更多开发人员回到为IE准备的Microsoft Script Debugger和为Mozilla准备Venkman
浏览器兼容性
JavaScript编程的最大问题来自不同的浏览器对各种技术和标准的支持构建一个运行在不同浏览器如IE和是一个困难的任务因此几种AJAX JavaScript框架或者生成基于服务端逻辑或标记库的JavaScript或者提供符合跨浏览器AJAX开发的客户端JavaScript库一些流行的框架包括Jquery,Backbase,Bitkraft,Django,DOJO,DWR,MochiKit,Prototype,Rico,Sajax,Sarissa,and Script.
这些框架给开发人员更多的空间使得他们不需要担心跨浏览器的问题虽然这些框架提升了开发人员构建应用的能力但由于厂商已经开发了更细节的用户界面的打包组件解决方案因此在AJAX组件市场中需要考虑一些其他因素例如提供通用用户界面的组件如组合框和数据栅格的几个厂商都可以被用来在应用中创建良好的通过类似电子数据表方式来查看和编辑数据的体验但这些组件不仅是封装了组件的用户界面而且包括与服务端数据的通讯方式这些组件通常使用基于标记方式来实现如或JSF控件
将以下文本放入一个HTML页面即可看到效果将会有两次弹出提示最后在页面上显示YES表示完成
&SCRIPTLANGUAGE=&JavaScript&&
functionajaxByJyking(){
varxmlhttp_request=&&;
if(window.ActiveXObject){
for(vari=5;i;i--){
xmlhttp_request=newActiveXObject(&Microsoft.XMLHTTP&);
xmlhttp_request=newActiveXObject(&Msxml2.XMLHTTP.&+i+&.0&);
xmlhttp_request.setRequestHeader(&Content-Type&,&text/xml&);
xmlhttp_request.setRequestHeader(&Charset&,&gb2312&);
}catch(e){
xmlhttp_request=
elseif(window.XMLHttpRequest){
xmlhttp_request=newXMLHttpRequest();
if(xmlhttp_request.overrideMimeType){
xmlhttp_request.override.MimeType('text/xml');
}catch(e){
xmlhttp_request=
xmlhttp_request.open('GET','http://www.',true);
xmlhttp_request.send(null);
xmlhttp_request.onreadystatechange=function(){
if(xmlhttp_request.readyState==4){//收到完整的服务器响应
document.write(&yes&)
ajaxByJyking();
优点和缺点
传统的web应用允许用户填写(form当提交表单时就向web服务器发送一个请求服务器接收并处理传来的表单然后返回一个新的网页这个做法浪费了许多带宽因为在前後两个页面中的大部分HTML代码往往是相同的由于每次应用的交互都需要向服务器发送请求应用的响应时间就依赖于服务器的响应时间这导致了用户界面的响应比本地应用慢得多
与此不同AJAX应用可以仅向服务器发送并取回必需的数据它使用SOAP或其它一些基于XML的web service接口并在客户端采用JavaScript处理来自服务器的响应因此在服务器和浏览器之间交换的数据大量减少结果我们就能看到响应更快的应用同时很多的处理工作可以在发出请求的客户端机器上完成所以Web服务器的处理时间也减少了
使用Ajax的最大就是能在不更新整个页面的前提下维护数据这使得Web应用程序更为迅捷地回应用户动作并避免了在网络上发送那些没有改变过的信息
Ajax不需要任何浏览器但需要用户允许JavaScript在浏览器上执行就像DHTML应用程序那样Ajax应用程序必须在众多不同的浏览器和平台上经过严格的测试随着Ajax的成熟一些简化Ajax使用方法的也相继问世同样也出现了另一种辅助程序设计的技术为那些不支持JavaScript的用户提供替代功能
对应用Ajax最主要的批评就是它可能破坏浏览器后退按钮的正常行为在动态更新页面的情况下用户无法回到前一个页面状态这是因为浏览器仅能记下历史记录中的静态页面一个被完整读入的页面与一个已经被动态修改过的页面之间的差别非常微妙用户通常都希望单击后退按钮就能够取消他们的前一次操作但是在Ajax应用程序中却无法这样做不过开发者已想出了种种办法来解决这个问题当中大多数都是在用户单击后退按钮访问历史记录时通过建立或使用一个隐藏的IFRAME来重现页面上的变更例如当用户在Google Maps中单击后退时它在一个隐藏的IFRAME中进行搜索然后将搜索结果反映到Ajax元素上以便将应用程序状态恢复到当时的状态
一个相关的观点认为使用动态页面更新使得用户难于将某个特定的状态保存到收藏夹中该问题的解决方案也已出现大部分都使用URL片断通常被称为锚点即URL中#后面的部分来保持跟踪允许用户回到指定的某个应用程序状态许多浏览器允许JavaScript动态更新锚点这使得Ajax应用程序能够在更新显示内容的同时更新锚点这些解决方案也同时解决了许多关于不支持后退按钮的争论
进行Ajax开发时网络延迟即用户发出请求到服务器发出响应之间的间隔需要慎重考虑不给予用户明确的回应 没有恰当的预读数据 或者对XMLHttpRequest的不恰当处理都会使用户感到延迟这是用户不愿看到的也是他们无法理解的通常的解决方案是使用一个可视化的组件来告诉用户系统正在进行后台操作并且正在读取数据和内容
一些手持设备如手机等还不能很好的支持A
用JavaScript作的Ajax引擎JavaScript的兼容性和DeBug都是让人头痛的事
Ajax的无刷新重载由于页面的变化没有刷新重载那么明显所以容易给用户带来困扰――用户不太清楚现在的数据是新的还是已经更新过的解决有在相关位置提示数据更新的区域设计得比较明显数据更新后给用户提示等
Ajax对流媒体的支持没有FLASHJava Applet好
基础应用创建XMLHttpRequest 方法
类首先由Internet Explorer以ActiveX对象引入被称为后来Mozilla﹑Netscape﹑Safari 和其他浏览器也提供了XMLHttpRequest类不过它们创建XMLHttpRequest类的方法不同
对于Internet Explorer浏览器
Internet 5.0-6.0:
xmlhttp_request=newActiveXObject(&Msxml2.XMLHTTP.3.0&);//3.0或4.0,5.0
xmlhttp_request=newActiveXObject(&Msxml2.XMLHTTP&);
xmlhttp_request=newActiveXObject(&Microsoft.XMLHTTP&);
Internet 7.0及以上:
xmlhttp_request = new XMLHttpRequest();
自动判断的代码:
if(window.XMLHttpRequest){//codeforIE7+,Firefox,Chrome,Opera,Safari
xmlhttp=newXMLHttpRequest();
}else{//codeforIE6,IE5
xmlhttp=newActiveXObject(&Microsoft.XMLHTTP&);
由于在不同Internet Explorer浏览器中XMLHTTP版本可能不一致为了更好的兼容不同版本的Internet Explorer浏览器因此我们需要根据不同版本的Internet Explorer浏览器来创建XMLHttpRequest类上面代码就是根据不同的Internet Explorer浏览器创建XMLHttpRequest类的方法
对于Mozilla﹑Netscape﹑Safari等浏览器
创建XMLHttpRequest 方法如下xmlhttp_request = new XMLHttpRequest();
如果服务器的响应没有XML mime-type header某些Mozilla浏览器可能无法正常工作为了解决这个问题如果服务器响应的header不是text/xml可以调用其它方法修改该header
xmlhttp_request=newXMLHttpRequest();
xmlhttp_request.overrideMimeType('text/xml');
在实际应用中为了兼容多种不同版本的浏览器一般将创建XMLHttpRequest类的方法写成如下形式
if(window.ActiveXObject){
for(vari=5;i;i--){
xmlhttp_request=newActiveXObject(&Microsoft.XMLHTTP&);
xmlhttp_request=newActiveXObject(&Msxml2.XMLHTTP.&+i+&.0&);
xmlhttp_request.setRequestHeader(&Content-Type&,&text/xml&);
xmlhttp_request.setRequestHeader(&Charset&,&gb2312&);
}catch(e){
xmlhttp_request=
}elseif(window.XMLHttpRequest){
xmlhttp_request=newXMLHttpRequest();
if(xmlhttp_request.overrideMimeType){
xmlhttp_request.overrideMimeType('text/xml');
}catch(e){
xmlhttp_request=
可以调用HTTP请求类的open和send方法如下所示
xmlhttp_request.open('GET',URL,true);
xmlhttp_request.send(null);
open的第一个参数是HTTP请求方式GETPOST或任何服务器所支持的您想调用的方式按照HTTP规范该参数要大写否则某些浏览器如Firefox可能无法处理请求
第二个参数是请求页面的URL
第三个参数设置请求是否为异步模式如果是TRUEJavaScript将继续执行而不等待服务器响应这就是&AJAX&中的&A&
服务器的响应
这需要告诉HTTP请求对象用哪一个JavaScript函数处理这个响应可以将对象的onreadystatechange属性设置为要使用的JavaScript的函数名如下所示
xmlhttp_request.onreadystatechange=FunctionN
FunctionName是用JavaScript创建的函数名注意不要写成FunctionName当然我们也可以直接将JavaScript代码创建在onreadystatechange之后例如
xmlhttp_request.onreadystatechange=function(){
//JavaScript代码段
首先要检查请求的状态只有当一个完整的服务器响应已经收到了函数才可以处理该响应XMLHttpRequest 提供了readyState属性来对服务器响应进行判断
readyState的取值如下
0 未初始化
1 正在装载
2 装载完毕
所以只有当readyState=4时一个完整的服务器响应已经收到了函数才可以处理该响应具体代码如下
if (http_request.readyState == 4) { // 收到完整的服务器响应 }else { // 没有收到完整的服务器响应 }
当readyState=4时一个完整的服务器响应已经收到了接着函数会检查HTTP服务器响应的状态值完整的状态取值可参见W3C文档当HTTP服务器响应的值为200时表示状态正常
处理从服务器得到的数据
有两种方式可以得到这些数据
(1) 以文本字符串的方式返回服务器的响应
(2) 以XMLDocument对象方式返回响应
应用程序架构应用程序框架
1.1 Bindows自从2003年
它通过强力联合DHTMLJavaScriptCSS和XML等技术能生成高度交互的应用程序-成为现代的的强有力对手Bindows应用程序不要求下载和也不需要在用户端安装-仅要求有一个浏览器也不需要JavaFlash或者ActiveXBindows有可能领导开发的AJAX应用程序的平台
1.2 BackBase自从2003年
是一个全面的浏览器端框架支持丰富的浏览器功能以及与.NET和Java的集成
·商业化来自于Backbase B.V总部在Amsterdam成立于2003年
1.3 Dojo自从2004年9月
提供全面窗口小组件和浏览器-服务器消息支持
·为创建定制的Javascript窗口小组件提供框架支持
1.4 Open Rico开发中自从2005年5月基于早期的私有框架
是一多用途框架支持Ajax基础结构和用户交互
1.5 qooxdoo开发中自从2005年5月
是另一个雄心勃勃的框架提供宽范围的UI支持和正在开发中的基础结构特性
1.6 Tibet开发中自从2005年6月
目的是提供高度可移植的和全面的Javascript API结果是可能自动生成大量的客户端代码自称是&企业级Ajax&
基础结构框架
2.1 AjaxCaller(自从2005年5月
是一基本的线程安全的XMLHttpRequest包装器主要针对Ajax新手仍处于原始的alpha开发阶段
2.2 Flash JavaScript集成包
允许JavaScript和Flash内容的集成
2.3 Google AJAXSLT发行于2005年6月
是一个Javascript框架用来执行XSLT转换以及XPath查询
2.4 HTMLHttpRequest(Beta版始于2005年
HtmlHttpRequest它使用了XMLHttpRequest和Iframes以改进兼容性
2.5 交互式网站框架自从2005年5月
交互式网站框架是一个项目目的是从浏览器端对Ajax基础结构的多方面予以支持自描述为&使用javascriptcssxml和html来创造高度交互网站的框架包括一个定制的针对高度可读的javascript的xml分析器实质上是建立基于AJAX的网站的基础还有另外一些通用脚本&
2.6 LibXMLHttpRequest发行于2003年6月
/connector?file=reference//libXmlRequest.html是XMLHttpRequest的一个瘦包装器
2.7 RSLite(x)
网站是http/rs/main.htm是一个针对XMLHttpRequest的瘦包装器
2.8 Sack在开发中自从2005年5月
网站是/2005/05/sack-of-ajax/是一个针对XMLHttpRequest的瘦包装器
2.9 Sarissa发行于2003年2月
网站是http是一种Javascript API它封装了在浏览器端可以独立调用XML的功能
2.10 XHConn发行于自从2005年4月
网站是/javascript/XHConn/是一个对XMLHttpRequest的瘦包装器
2.11 jQuery
简洁的思想几乎所有操作都是以选择DOM元素有强大的Selector开始然后是对其的操作Chaining等特性
服务器端多种语言
3.1 跨平台异步的接口(2005年5月
CPAINT是一真正的支持PHP和ASP/Vbscript的Ajax实现和JSRS(JavaScript远程脚本实现CPAINT提供给你需求的代码在后台实现AJAX和JSRS而返回的数据以JavaScript形式在前台操作格式化和显示这允许你创建能提供接近实时的反馈给用户的
3.2 SAJAX可用但是不是1.0版本自从2005年3月
网站是http:///sajax/直接把调用从Javascript发送到你的服务器端语言并再次回返
3.3 Javascipt对象标志JSON和JSON-RPC
JSON(http/index.html是一个&胖的自由的XML选择&而JSON-RPC(/是一种远程过程协议类似于强有力支持Javascript客户
3.4 Javascript远程脚本JSRS自从2000年
网址是http/直接把调用从Javascript发送到你的服务器端语言并再次回返
服务器端Java
4.1 WebORB for Java自从2005年8月
网址http://weborb/aboutWeborb.htm是一个平台支持开发AJAX和基于Flash的应用程序并可以把它们与Java对象和XML Web服务相系起来在线举例http)
4.2 Echo 2自从2005年3月
网址是http:///允许你用纯Java代码编写Ajax范例http://demo./ia
4.3 Direct Web Remoting (DWR)(2005年
网址是http/是一个框架用于直接从Javascript代码中调用Java方法
4.4 SWATO(2005年
网址是/是一套可重用的和良好集成的Java/JavaScript库它实现了一种更容易的方式来改变你的web应用程序的交互它是通过AJAX方式实现
服务器端Lisp
5.1 CL-Ajax
网址实现Javascript直接调用服务器端Lisp函数
服务器端.NET
6.1 WebORB自从2005年8月
网址/aboutWeborb.htm是一个平台用于开发AJAX和基于Flash的胖客户端应用程序并能把它们连接到.NET对象和XML Web服务在线举例http://))
6.2自从2005年3月)
网址是http/是一个库实现从Javascript到服务器端.NET的存取
服务器端PHP
7.1 AjaxAC自从2005年4月
网址是/用单个的PHP类封装了完整的应用程序
7.2 JPSpan
网址是http直接把Javascript调用传递到PHP函数
服务器端Ruby
Ruby On Rails/是一个通常的强力支持Ajax的web框架
实例展示XMLHttpRequest 对象
通过使用 XMLHttpRequest 对象web 开发者可以做到在页面已加载后从服务器更新页面
在 2005 年 AJAX 被 Google 推广开来Google Suggest
Google 建议使用 XMLHttpRequest 对象来创建一种动态性极强的 web 界面当您开始在 Google 的搜索框中输入查询时JavaScript 会向某个服务器发出这些字词然后服务器会返回一系列的搜索建议
XMLHttpRequest 对象得到下列浏览器的支持Internet Explorer 5.0+Safari 1.2Mozilla 1.0 / FirefoxOpera 8+ 以及 Netscape 7
AJAX Http 请求
Previous PageNext Page
AJAX 使用 Http 请求 在传统的 JavaScript 编程中假如您希望从服务器上的文件或数据库中得到任何的信息或者向服务器发送信息的话就必须利用一个 HTML 表单向服务器 GET 或 POST 数据而用户则需要单击提交按钮来发送/获取信息等待服务器的响应然后一张新的页面会加载结果
由于每当用户提交输入后服务器都会返回一张新的页面传统的 web 应用程序变得运行缓慢且越来越不友好
通过利用 AJAX您的 JavaScript 会通过 JavaScript 的XMLHttpRequest对象直接与服务器来通信
通过使用 HTTP 请求web 页可向服务器进行请求并得到来自服务器的响应而不加载页面用户可以停留在同一个页面他或她不会注意到脚本在后台请求过页面或向服务器发送过数据
您的第一个 AJAX 应用程序
为了让您理解 AJAX 的工作原理我们将创建一个小型的 AJAX 应用程序
首先我们需要一个带有两个文本框的 HTML 表单用户名和时间用户名文本框由用户填写而时间文本框使用 AJAX 进行填写
此 HTML 文件名为 &testAjax.htm&请注意这个 HTML 表单没有提交按钮
&formname=&myForm&&
用户&inputtype=&text&name=&username&/&
时间&inputtype=&text&name=&time&/&
我们将在下一节解释 AJAX 的基本原理
AJAX 浏览器支持
Previous PageNext Page
AJAX - 浏览器支持 AJAX 的要点是 XMLHttpRequest 对象
不同的浏览器创建 XMLHttpRequest 对象的方法是有差异的
IE 浏览器使用ActiveXObject而其他的浏览器使用名为XMLHttpRequest的 JavaScript 内建对象
如需针对不同的浏览器来创建此对象我们要使用一条 &try and catch& 语句您可以在我们的 JavaScript 教程中阅读更多有关try 和 catch 语句的内容
让我们用这段创建 XMLHttpRequest 对象的 JavaScript 来更新一下我们的 &testAjax.htm& 文件
&scripttype=&text/javascript&&
functionajaxFunction(){
try{//Firefox,Opera8.0+,Safari
xmlHttp=newXMLHttpRequest();
}catch(e){//InternetExplorer
xmlHttp=newActiveXObject(&Msxml2.XMLHTTP&);
}catch(e){
xmlHttp=newActiveXObject(&Microsoft.XMLHTTP&);
}catch(e){
alert(&您的浏览器不支持AJAX&);
&formname=&myForm&&
用户&inputtype=&text&name=&username&/&
时间&inputtype=&text&name=&time&/&
首先声明一个保存 XMLHttpRequest 对象的 xmlHttp 变量
然后使用 XMLHttp=new XMLHttpRequest() 来创建此对象这条语句针对 FirefoxOpera 以及 Safari 浏览器假如失败则尝试针对 Internet Explorer 6.0+ 的 xmlHttp=new ActiveXObject(&Msxml2.XMLHTTP&)假如也不成功则尝试针对 Internet Explorer 5.5+ 的 xmlHttp=new ActiveXObject(&Microsoft.XMLHTTP&)
假如这三种方法都不起作用那么这个用户所使用的浏览器已经太过时了他或她会看到一个声明此浏览器不支持 AJAX 的提示
注释上面这些浏览器定制的代码很长也很复杂不过每当您希望创建 XMLHttpRequest 对象时这些代码就能派上用场因此您可以在任何需要使用的时间拷贝粘贴这些代码上面这些代码兼容所有的主流浏览器Internet ExplorerOperaFirefox 以及 Safari
下一节为您展示如何使用 XMLHttpRequest 对象与服务器进行通信
AJAX - XMLHttpRequest 对象
Previous PageNext Page
AJAX - 更多有关 XMLHttpRequest 对象的知识
在向服务器发送数据之前我们有必要解释一下 XMLHttpRequest 对象的三个重要的属性
onreadystatechange 属性
onreadystatechange 属性存有处理服务器响应的函数下面的代码定义一个空的函数可同时对 onreadystatechange 属性进行设置
xmlHttp.onreadystatechange=function(){
//我们需要在这里写一些代码
readyState 属性
readyState 属性存有服务器响应的状态信息每当 readyState 改变时onreadystatechange 函数就会被执行
这是 readyState 属性可能的值
请求未初始化在调用 open() 之前
请求已提出调用 send() 之前
请求已发送这里通常可以从响应得到内容头部
请求处理中响应中通常有部分数据可用但是服务器还没有完成响应
请求已完成可以访问服务器响应并使用它
我们要向这个 onreadystatechange 函数添加一条 If 语句来测试我们的响应是否已完成意味着可获得数据
xmlHttp.onreadystatechange=function(){
if(xmlHttp.readyState==4){
//从服务器的response获得数据
responseText 属性
可以通过 responseText 属性来取回由服务器返回的数据
在我们的代码中我们将把时间文本框的值设置为等于 responseText
xmlHttp.onreadystatechange=function(){
if(xmlHttp.readyState==4){
document.myForm.time.value=xmlHttp.responseT
下一节我们会介绍如何向服务器请求数据
AJAX - 请求服务器
Previous PageNext Page
AJAX - 向服务器发送一个请求
要想把请求发送到服务器我们就需要使用 open() 方法和 send() 方法
open() 方法需要三个参数第一个参数定义发送请求所使用的方法GET 还是 POST第二个参数规定服务器端脚本的 URL第三个参数规定应当对请求进行异步地处理
send() 方法可将请求送往服务器如果我们假设 HTML 文件和 ASP 文件位于相同的目录那么代码是这样的
xmlHttp.open(&GET&,&time.asp&,true);xmlHttp.send(null);
我们必须决定何时执行 AJAX 函数当用户在用户名文本框中键入某些内容时我们会令函数在幕后执行
&scripttype=&text/javascript&&
functionajaxFunction(){
try{//Firefox,Opera8.0+,Safari
xmlHttp=newXMLHttpRequest();
}catch(e){//InternetExplorer
xmlHttp=newActiveXObject(&Msxml2.XMLHTTP&);
}catch(e){
xmlHttp=newActiveXObject(&Microsoft.XMLHTTP&);
}catch(e){
alert(&您的浏览器不支持AJAX&);
xmlHttp.onreadystatechange=function(){
if(xmlHttp.readyState==4){
document.myForm.time.value=xmlHttp.responseT
xmlHttp.open(&GET&,&time.asp&,true);
xmlHttp.send(null);
&formname=&myForm&&
用户&inputtype=&text&name=&username&onkeyup=&ajaxFunction();&/&
时间&inputtype=&text&name=&time&/&
下一节介绍 &time.asp& 的脚本这样我们完整的 AJAX 应用程序就搞定了
AJAX -服务器端的脚本
Previous PageNext Page
AJAX - 服务器端的脚本
现在我们要创建可显示当前服务器时间的脚本
responseText 属性会存储从服务器返回的数据在这里我们希望传回当前的时间
这是 &time.asp& 的代码
&% response.expires=-1;response.write(time)%&
注释Expires 属性可设置在页面缓存失效前页面被缓存的时间分钟Response.Expires=-1 指示页面不会被缓存
运行您的 AJAX 应用程序
请在下面的文本框中键入一些文本然后单击时间文本框
时间文本框可在不加载页面的情况下从 &time.asp& 获得服务器的时间
问题及对策浏览器兼容性问题
Ajax在本质上是一个浏览器端的技术首先面临无可避免的第一个问题即是浏览器的兼容性问题各家浏览器对于JavaScript/DOM/CSS的支持总有部分不太相同或是有Bug甚至同一浏览器的各个版本间对于JavaScript/DOM/CSS的支持也有可能部分不一样这导致程序员在写Ajax应用时花大部分的时间在调试浏览器的兼容性而非在应用程序本身因此目大部分的Ajax链接库或开发框架大多以js链接库的形式存在以定义更高阶的JavaScript API JavaScript对象模板或者JavaScript Widgets来解决此问题如
业务逻辑分散
Ajax技术之主要目的在于局部交换客户端及服务器之间的数据如同传统之主从架构无可避免的会有部分的会实现在客户端或部分在客户端部分在服务器由于业务逻辑可能分散在客户端及服务器且以不同之语言实现这导致Ajax应用程序极难维护如有用户接口或业务逻辑之更动需求再加上前一个JavaScript/DOM/CSS之兼容性问题Ajax应用往往变成程序员的梦魇针对业务逻辑分散的问题Ajax开发框架大致可分为两类
[1]将业务逻辑及表现层放在浏览器数据层放在服务器因为所有的程序以JavaScript执行在客户端只有需要数据时才向服务器要求服务此法又称为胖客户端fat client架构服务器在此架构下通常仅用于提供及储存数据此法的好处在于程序员可以充分利用JavaScript搭配业务逻辑来做出特殊的用户接口以符合终端用户的要求但是问题也不少主因在第一JavaScript语言本身之能力可能不足以处理复杂的业务逻辑第二JavaScript的执行效能一向不好第三JavaScript访问服务器数据仍需适当的服务器端程序之配合第四浏览器兼容性的问题又出现有些Ajax开发框架如DWR企图以自动生成JavaScript之方式来避免兼容的问题并开立通道使得JavaScript可以直接调用服务器端的Java程序来简化数据的访问但是前述第一及第二两个问题仍然存在程序员必须费相当的力气才能达到应用程序之规格要求或可能根本无法达到要求
[2]将表现层业务逻辑及数据层放在服务器浏览器仅有用户接口引擎User Interface engine此法又称为thin client架构或中心服务器server-centric架构浏览器的用户接口引擎仅用于反映服务器的表现层以及传达用户的输入回到服务器的表现层由浏览器所触发之事件亦送回服务器处理根据业务逻辑来更新表现层然后反映回浏览器因为所有应用程序完全在服务器执行数据及表现层皆可直接访问程序员只需使用服务器端相对较成熟之程序语言如即可不需再/DOM/CSS在开发应用程序时相对容易缺点在于用户接口引擎以及表现层通常以标准组件的形式存在如需要特殊组件用户接口时往往须待原框架之开发者提供缓不济急如开源码Ajax开发框架ZK支持及组件尚无XAML之支持多进程或多线程的竞争问题
Ajax是以异步的方式向提交需求对服务器而言其与传统的提交需求并无不同而且由于是以异步之方式提交如果同时有多个Ajax需求及窗体提交需求将无法保证哪一个需求先获得服务器的响应这会造成应用程序典型的多进程process或多线程thread的竞争racing问题程序员因此必须自行处理或在JavaScript里面动手脚以避免这类竞争问题的发生如Ajax需求未响应之前先disable送出按钮这又不必要的增加了程序员的负担已知有自动处理此问题之开发框架似乎只有ZK
AJAX中文传值乱码问题解决方法
在浏览器端对要传递的中文参数进行编码处理.代码如下:
xmlhttp.open(&POST&,&AjaxServlet&,true);//请求参数初始化
xmlhttp.setRequestHeader(&Content-Type&,&application/x-www-form-urlencoded&);
xmlhttp.send(&str=&+encodeURI(encodeURI(&安安DIY创作室&)));//
向服务器端发送参数
在服务器端代码:
PrintWriterout=response.getWriter();//得到response的输出流对象
Stringstr=request.getParameter(&str&);//得到页面上名字为str的参数
Stringstr2=URLDecoder.decode(str,&utf-8&);//对得到的参数进行解码
System.out.print(str);//向浏览器端发送数据
新手上路我有疑问投诉建议参考资料 查看}

我要回帖

更多关于 soc箱是什么意思 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信