关于JQuery 调用后台webmethod实现用户名验证,关于同步异步——求大神给个解决方案

问题描述

困扰我了一个多星期了,小弟新手,求大神给个解决方案1,前台ui:两个textbox:RequestorAlias和RequestorName。两个dropdownlist:Region和Country要实现的功能是,在RequestorAlias的textbox里填写一个新的字符串,后台验证合法以后,联动的改变RequestorName的值。2,前台js代码的实现:functiontxtRequestorAlias_TextChanged(str){strFullPath=newString(window.document.location.href);strRequestorAlias=newString(document.getElementById('<%=txtRequestorAlias.ClientID%>').value);if(strRequestorAlias==''){document.getElementById('<%=aliasValaditionMessage.ClientID%>').innerText='*Pleaseenteravaliduseralias';}else{$.ajax({type:"Post",async:true,url:strFullPath+"/RequestorAlias_TextChanged",data:"{'str':'"+strRequestorAlias+"'}",contentType:"application/json;charset=utf-8",dataType:"json",success:function(data){//alert(data.d);if((data.d[1]==null)){document.getElementById('<%=txtRequestorAlias.ClientID%>').innerText='';document.getElementById('<%=aliasValaditionMessage.ClientID%>').innerText='*Pleaseenteravaliduseralias';}else{//若输入alias合法,联动修改各个textbox的值document.getElementById('<%=aliasValaditionMessage.ClientID%>').innerText='';document.getElementById('<%=txtRequestorName.ClientID%>').innerText=data.d[1]document.getElementById('<%=hd_managerAlias.ClientID%>').innerText=data.d[3]document.getElementById('<%=hd_businessGroup.ClientID%>').innerText=data.d[2]}},error:function(err){alert(err);}});}}3,后台webmethod的实现:[WebMethod]publicstaticstring[]RequestorAlias_TextChanged(stringstr){string[]userInfo=newstring[4];string[]userName=IATMethods.GetUserInfo(str);if(userName[1]!=null){userInfo=userName;}returnuserInfo;}我遇到的困扰:1,RequestorAlias框一旦被改变,就开始调用后台webmethod做验证,若通过,就联动改变RequestorName的值;2,问题在于,这个验证需要花费一定的时间1-2秒不等3,若是我修改完alias,鼠标离开什么都不做,等着相关验证完成——就不会有任何问题4,若是我修改完Alias后直接将鼠标移动到“Region”的list进行选择,这个操作会发出一个postback的指令让Country下拉框populate出相应的list。这种情况下,会出现这种issue:等1-2秒之后,RequestorName的值会显示正确的新name,然后一闪而过,重新显示原来的Name值。随后Country下拉框显示可选item。个人认为这是由于同步异步问题造成的,求告知怎么解决

解决方案

本帖最后由 zhshh521 于 2014-12-01 15:38:19 编辑
解决方案二:
想办法把联动用js脚本做,而不是每点一次下拉列表都要向服务器回发一次,效率太低了
解决方案三:
引用1楼Z65443344的回复:

想办法把联动用js脚本做,而不是每点一次下拉列表都要向服务器回发一次,效率太低了

我现在是在做这个系统维护,我的任务是让那个RequesorAlias框可编辑,并且异步验证。其他都不是我做的,我现在的时间也不允许我对整个系统大改。。。
解决方案四:
不改怕是没什么办法了如果之前做网站的人连ajax都没用,每点一次就整个页面都刷新,你不改还能有什么办法
解决方案五:
要么就先把所有控件都设置为不可用,等ajax完成刷新了,再重新设置为可用,避免脏数据
解决方案六:
引用4楼Z65443344的回复:

要么就先把所有控件都设置为不可用,等ajax完成刷新了,再重新设置为可用,避免脏数据

我是新手,我一直弄不明白,我对那个webmethod的调用,究竟是同步的还是异步?我现在遇到的这个问题,是同步异步造成的吗?谢谢了
解决方案七:
引用4楼Z65443344的回复:

要么就先把所有控件都设置为不可用,等ajax完成刷新了,再重新设置为可用,避免脏数据

如果是这样的话,异步验证好像就没意义了吧,实质上还是同步

时间: 2025-01-29 16:26:15

关于JQuery 调用后台webmethod实现用户名验证,关于同步异步——求大神给个解决方案的相关文章

c语言-用C语言验证以下算子,求大神帮助啊

问题描述 用C语言验证以下算子,求大神帮助啊 void __sb_q_vmac (volatile __sb_vect4x40s_t *, const volatile __sb_vect4x16s_t, const volatile __sb_vect4x16s_t, const volatile __sb_vect4x40s_t *); 解决方案 无非就是给出了一个函数原型,还有一些诡异的参数.天知道你问什么. 解决方案二: 这是要验证什么呢,起码说说目的 解决方案三: 参数各个结构体都是你

jquery.mobile中的data-icon大小能调整吗? 求 大神解答 急

问题描述 jquery.mobile中的data-icon大小能调整吗? 求 大神解答 急 如题 急 !!! 附求方法 急急急 大神求解

javascript-我对JQuery UI 自动完成的功能的一些疑问,求大神解答~

问题描述 我对JQuery UI 自动完成的功能的一些疑问,求大神解答~ 下面是我从菜鸟教程里面看到的Demo.如下 现在的功能是我选某个Name,然后直接就可以填到input框里,随后插入到数据库. 现在我想实现的功能是,填入的是名字,但是存储到数据库里的是id,这个怎么写? <!doctype html> <html lang="en"> <head> <meta charset="utf-8"> <titl

jfreechart-java如何使用JFreeChart编写一个可以调用oracle数据库的公共的饼图类,求大神解答代码

问题描述 java如何使用JFreeChart编写一个可以调用oracle数据库的公共的饼图类,求大神解答代码 java如何使用JFreeChart编写一个可以调用oracle数据库的公共的饼图类 新手不是很懂求帮忙 谢谢 解决方案 http://blog.chinaunix.net/uid-20964486-id-1831502.html

jquery 调用后台[WebMethod]方法后,submit失效???

问题描述 如果不执行jQuery,submit没有问题! 解决方案 解决方案二:贴代码.

关于java中用JNative调用dll文件报错的问题,跪求大神解决

问题描述 我在Eclipse中新建一个java工程,在java文件中用JNative调用dll文件,我把JNativeCpp.dll放在的C:WindowsSystem32中,把JNative.jar放在C:ProgramFilesJavajre7libext中,可是运行的时候总是报错JNativelibrarynotloaded,sorry!求解决啊,弄了一下午了,快死人了,还没调出来! 解决方案 解决方案二:JNativeCpp.dll放在的C:Windows下试试

关于jquery的引用的问题,求大神指点

问题描述 关于jquery的引用的问题,求大神指点 各位大神 我在vs2008中写表单验证 在bin文件夹下放了AspNet.ScriptManager.jQuery.dll文件 运行时报错了 有人说是没添加引用 我在项目里添加了bin文件夹里的dll文件引用 求大神指点下 解决方案 你的jquery.js放在哪个目录,就从哪个目录引用不就好了么? 解决方案二: 我表示没用过,jquery.dll,只用过jquery.js,关注中! 解决方案三: 只用过Jqeuery.js,关注下.

jquery mobile-jQuery moblie滑动的疑问。。。求大神

问题描述 jQuery moblie滑动的疑问...求大神 求助,使用jQuery moblie的swipe事件,有时候滑动屏幕没反应,多次滑动后一起积累触发多次滑动,这个问题该怎么解决呢?谢谢... 代码:3张图片滑动效果 js代码: $("body").on("swipeleft",function(){ //alert("zuo"); if(num>=3) return; num++; if(num==2){ $('#bgImg').

一个ajax最简单的问题困扰了好久啊,求大神帮忙看看,后台是vb.net的

问题描述 一个ajax最简单的问题困扰了好久啊,求大神帮忙看看,后台是vb.net的 前台的ajax是这样的: <script type="text/javascript"> $(function () { $("#button1").click(function () { $.ajax({ type: "post", url: "ajax.aspx/ajaxtext", dataType: "text&