问题产生原因:
用户充值接口,一个选择支付方式的dom绑定了一个插入订单的 ajax。
为了监测用户点了哪个支付方式,现在要把选择哪个支付方式记录下来。

当然可以在这个ajax请求的方法里面加入一个插入监测数据。但是考虑到插入订单的时候要与很多支付平台对接,速度会本来比较慢。万一出现意外情况导致订单插入失败,会比较麻烦。
然后研究了下。一个dom绑定两个事件,执行顺序的问题。

$('#dom').onclick(function1 (){
  $.ajax({
$('#dom').onclick(function2 (){
  $.ajax({

看到的别东西:

JS事件绑定的几种方式

 1. <div id="outestA" onclick="return buttonHandler(this);"></div>  
 2. <div id="outestA" onclick="var id = this.id;alert(id);return false;"></div> 
 3. var dom = document.getElementById("outestA");  
    dom.onclick = function(){alert("1=" + this.id);};  
    dom.onclick = function(){alert("2=" + this.id);}; 后面的会覆盖前面的
4.  addEventListener(type, listener, useCapture);
// type:事件类型,不含"on",比如"click""mouseover""keydown";  
// 而attachEvent的事件名称,含含"on",比如"onclick""onmouseover""onkeydown";  (IE特有)
// listener:事件处理函数  
// useCapture是事件冒泡,还是事件捕获,默认false,代表事件冒泡类型      ps:翻译是否使用捕获  
//同一个事件函数,并且事件类型都为冒泡或者事件捕获类型,那只能绑定一次,

JS事件冒泡和事件捕获

userCapture 为false
事件冒泡执行顺序:   从内部到外部Document。
userCapture 为true
事件捕获执行顺序 : 从Document向内部执行
Dom事件流:包含userCapture ture 和 false
捕获阶段的处理函数最先执行,其次是目标阶段的处理函数,最后是冒泡阶段的处理函数。
目标阶段的处理函数,先注册的先执行,后注册的后执行。

从这里看,执行肯定是有先后顺序的。那如果其中的一个ajax有问题,会不会影响到另一个的运行?

<span class="test">测试Ajax执行顺序</span>>
<script src="http://apps.bdimg.com/libs/jquery/2.1.4/jquery.min.js"></script>
<script type="text/javascript">
$('.test').click(function(){
    $.ajax({
        url:'http://test.iok.la/sdk/',
         type:'post',
  dataType:"jsonp",
        success:function(res){
            console.log(res);
$('.test').click(function(){
    $.ajax({
        url:'http://test.iok.la/sdk2',
         type:'post',
           dataType:"jsonp",
        success:function(res){
            console.log(res);
</script>
  • 测试结果,第一个ajax先运行。
  • 第一个不会影响第二个的运行(链接错误或者 在后端sleep(20)都不影响)。

是异步的!其实想一想也是,ajax 本来一个特性就是异步的。。。。。。。正常来说的话也应该是这样子的。。。。

发现了一篇文章 主体的内容将的是 JS操作DOM到底是同步还是异步的
https://segmentfault.com/q/1010000005630545?_ea=903562

额…………看了好久,还是没怎么懂他们要表达的内容。。。。暂时先放一放~~以后研究

//显示加载动画

js 延迟加载,setTimeout

utils.loading();  
//让JS线程等待100毫秒,等待会让UI渲染进程实现,  
//如果发现setTimeout还要隔较长时间才到期,为了避免时间上的浪费,浏览器选择马上切换到UI线程。   
setTimeout(function(){  
    //长时间的js计算,同步请求等耗时操作  
    for(var i=0;i<100;i++){  
        console.log(11);  
    //关闭加载动画  
    utils.closeload();  
},1000);  
问题产生原因: 用户充值接口,一个选择支付方式的dom绑定了一个插入订单的 ajax。 为了监测用户点了哪个支付方式,现在要把选择哪个支付方式记录下来。当然可以在这个ajax请求的方法里面加入一个插入监测数据。但是考虑到插入订单的时候要与很多支付平台对接,速度会本来比较慢。万一出现意外情况导致订单插入失败,会比较麻烦。 然后研究了下。一个dom绑定两个事件,执行顺序
1. 背景 在前端项目中,经常会遇到页面有多个接口,后一个接口参数需要从前一个接口的返回数据中获取,这就存在接口必须按顺序一个一个执行。而Angular提供的Http服务请求接口都是异步请求,因此通常情况下会写成如下的代码: funA(arg1,arg2,function(){ funcB(arg1,arg2,function(){ funcC(arg1,arg2,function(){ xxxx.... 这不仅造成页面代码混乱不易维护,也让开发者无法追踪代码的运行。本身嵌套就已经不容易理解,加上不知何时才能触发回调,这就相当于雪上加霜。 2. Pro
这四个按钮依次点击输出的是 dom0级绑定依赖dom对象上的onclick属性 ① 要是按照的写法会将红色部分作为参数传入dom对象上的onclick属性里面(此属性是个函数) ② 第二个按钮其test函数和上面。 ③ 第三种方式: btn是拿到的这个按钮,也就是dom对象。这种写法是往对象身上添加一个方法,那这里一样的道理用自己写的onclick函数替换了dom对象上原本的那个属性 ④dom2级
狗都知道事件异步一个页面里随处可见都是点击、鼠标经过、某个键盘被按下的操作,如果是同步的页面在这些行为没有执行的时候很显然永远不能完全显示! btn.onclick = function() { console.log(0); console.log(1); 这也是为什么这段代码在我点击后查看控制台是1 0 但是我换一种执行方式: (function() { btn.onclick = function() { 绑定事件一般分为三种方法: 1Dom0级 ①在html中直接添加一个属性:<a href="http://www.github.com" onclick='show()'>github</a> ②在js标记中书写btn..
事件机制 HTML DOM 允许 JavaScript 对 HTML 事件作出反应。JavaScript 能够在事件发生时执行,比如当用户点击某个 HTML 元素时。 为了在用户点击元素时执行代码,请向 HTML 事件属性添加 JavaScript 代码: <div id='div1'>我是一个div</div> <button id='btn'>点我啊</button> <!-- 还可以在HTML标签中进行事件的绑定 需要加()--> 1.同步请求是返回一个页面信息,交互不好; 2.异步请求返回数据信息,可以指定放在某个位置,交互较好; 3.ajax中的同步请求,就是在异步的基础上不获得服务器的返回信息,后面的js代码无法执行;http页面的上面三种请求都无法避免多次点击事件,多次点击事件可以用以下方法解决: http://blog.csdn.net/hephec/article/de
你应该知道,javascript语言是一门“单线程”的语言,不像java语言,类继承Thread再来个thread.start就可以开辟一个线程,所以,javascript就像一条流水线,仅仅是一条流水线而已,要么加工,要么包装,不能同时进行多个任务和流程。 那么这里说的同步异步到底是什么呢?其实个人觉得js官方的文档在使用两个词的时候并不准确,包括很多其他词汇,都只是听起来高深,但实际应用好
//介绍: //为防止频繁触发事件;例如:onmousemove事件,移动触发,若使用防抖,若一直移动不会执行该事件,停止该事件操作之后,会在延时时间后去只执行,具体尝试便知。 //防抖 应用场景 //1,scroll滚动事件触发 //2,搜索框输入查询 //3,表单验证(ajax) //4,按钮提交事件ajax) //5,resize,浏览器窗口缩放(ajax) ;function ...
在Javascript中,父元素包含子元素,当给父元素设置onmouseover或onmouseout事件时,鼠标从父级移入子级的时候会多次触发onmouseover事件;鼠标从子级移入父级后再次移出的时候也会多次触发onmouseout事件。所以这个问题要解决,不然在以后的事例中出现很大的问题。 下面我们首先要熟悉几个对象与方法: 1)事件对象: 2)事件对象相关属性(只针对onmouse...
async. 默认是 true,即为异步方式,$.ajax执行后,会继续执行ajax后面的脚本,直到服务器端返回数据后,触发$.ajax里的success方法,这时候执行的是两个线程。 async 设置为 false,则所有的请求均为同步请求,在没有返回值之前,同步请求将锁住浏览器,用户其它操作必须等待请求完成才可以执行。 转载于:https://www.cnblogs.com/pc...
<meta charset="UTF-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>js
回 @bf 同学 本篇文章不是笔记也不是心得,而是关于一个问题的讨论,问题最初出现于https://segmentfault.com/q/1010000005630545?_ea=903562 由于 @bf 同学不方便加QQ/微信,而这个问题又比较大,在问答评论里不好描述清楚,so,趁着周末专门写了一篇文章来回应 @bf 同学 @b...
如果是这样的话,可以这样做: 1. 在 JavaScript 中触发点击事件。可以使用 DOM 元素的 `click` 事件或者 `jQuery` 的 `click` 方法。 2. 使用 `Ajax` 将数据发送到服务器。你可以使用 `jQuery` 的 `$.ajax()` 方法或者原生的 `XMLHttpRequest` 对象。 3. 在服务器端使用 PHP 保存数据。可以使用 `fwrite()` 函数将数据写入文件,或者使用 `mysqli` 或者 `PDO` 等数据库操作函数将数据存储到数据库中。 具体的实现方式取决于你的需求。 error:class 'socket.error' [Errno 2] No such file or directory: file: /usr/lib64/python2.7/socke 31021 屏蔽Slow network is detected. Fallback font will be used while loading: http://font-path.extension lzq123456dgj: 为什么我找到不到那一项 配置Nginx和php-fpm用Sock套接字连接时,找不到php-fpm.sock的原因 星夜长鸿: 终于解决了我的困惑 redis sentinel搭建以及基础知识介绍 freedomwolf: 学习了,很棒,利用脚本命令辅助复制更改配置文件,方便很多,省的复制文件后然后进入配置文件去修改, kswapd0 进程CPU占用过高 树下躲雨要撑伞: 不一定是病毒的问题,物理内存不足的问题也是存在的。(病毒和物理内存不足这两种情况我都经历过表情包 linux下安装npm skylarrrr: 太感谢了阿啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊