iframe框架页面中弹出窗口如何使用JS回调
可能是:冒泡所致,阻止冒泡,就可以了。js执行分为两个阶段,一个是捕获,然后就是冒泡。
举个例子,你在大div中嵌套一个小div,两个div都绑定点击事件,当你点击小的div的时候。两个div的事件都会被触发。这就是因为,js的冒泡机制。
我不知道你用什么浏览器,如果是w3c标准的话取消事件冒泡是用e.stopPropagation 如果是IE的话直接window.event.chancelBUbble =true就可以了。具体的用法google,ncr上都有。希望能帮到你。也可能不是这个原因。
js同步和异步函数的区别
js的同步和异步问题通常是指ajax的回调,如果是同步调用,程序在发出ajax调用后就会暂停,直到远程服务器产生回应后才会继续运行。
而如果是异步调用,程序发出ajax调用后不会暂停,而是立即执行后面的代码,服务器返回信息后会自动触发回调函数进行处理。
相比较而言,异步调用的性能最佳,程序不会出现卡顿的现象,而同步调用则通常用于需要立即获得结果并实时处理的情况。
打个比方:假如你想让四个手下分别去执行四个不同的任务,如果用“同步”的方法,就要先让第一个人去执行任务,这期间你和另外三个手下就呆呆地等,什么也不干,直到第一个人完成任务回来报告后再让第二个人去执行任务,依此类推;而如果用“异步”的方法,就可以把四个手下同时派出去执行任务,然后自己就可以去喝酒唱歌泡妞了,手下完成任务后只需要用手机向你汇报结果即可。
同步,就是调用方发起一个调用后,必须等待这个调用返回结果之后才能继续往下执行。换句话说,调用者是 “主动等待” 这个调用的返回结果。
异步,则是和同步相反 ,调用方发起一个调用后,调用方不会一直等待该调用返回结果,而是在调用发出后就直接返回了,所以没有返回处理结果,调用者继续执行后续操作,而被调用者通过某种反馈机制来通知调用者最后的处理结果。比如说监听被调用者的状态、被调用者执行完成后主动发出通知告知调用者或者通过回调的方式。
js提交的数据怎么返回结果
当使用JavaScript提交数据时,通常使用Ajax技术实现异步请求。在请求完成后,服务器将返回一个响应,包含需要的数据或状态信息。
在JavaScript中,可以通过回调函数或Promise对象来处理服务器返回的结果。
如果使用回调函数,可以在请求时指定一个回调函数,该函数将在服务器响应时被调用,以处理响应数据。
如果使用Promise对象,可以使用then()方法来处理成功的响应或catch()方法来处理错误的响应。
无论使用哪种方法,都需要根据需要解析服务器返回的数据,并根据需要更新页面或执行其他操作。
解决ajax回调函数返回的字符串乱码问题
找到问题了:
1、ajax请求失败,提示parsererror(到complete回调函数里看),所以不会执行success回调函数;
2、parsererror也就是说明数据解析出错了,也就是返回的数据格式有问题。post请求设置的格式是json,实际上返回的不是json;
实际返回的数据如下:
注意红色的部分,数据被压缩过了,当作json解析自然会出错;
3、如果把 post请求最后的 ‘json’ 参数去掉,会发现可以进入 success 回调函数,但此时response是个字符串而不是js对象,而且开头好像还有两个乱码,response.contents 成了 undefined。
--------
所以问题根源是:
服务端返回的是gzip压缩后的数据,不是json字符串。
问题就是这样的,解决方法考题主自己了。
还没有评论,来说两句吧...