La comprensión del estado sincrónico y ajax éxito, la secuencia completa de la

escribir el código de hoy, escribir función de eliminación muy simple, pero se ha detectado un problema en el orden de ejecución de ajax de alguna manera, en este abajo escribir y compartir con ustedes.

En primer lugar el código.

	//第一步先同步删除
layer.confirm("确认删除所选数据?",function(){
		 $.ajax({
           type:"post",
           url:url,
           data:{"ids":ids},
           async:false,
	       traditional: true,
           success: function (data) {
        	   if(data.code=="1"){
        		   layer.msg('删除成功')
        	   }else{
        		   layer.msg('删除失败')
        	   }
             },
  		  });
 	   });
   //删除完毕后再刷新表格
    F5();

Una lógica muy clara, eliminar primero los datos dentro de la base de datos de sincronización de ajax, a continuación, actualice la tabla de páginas.

Ideal está lleno, la realidad es muy delgada, en realidad me encontré con este método de borrado es llevar a cabo una actualización de datos antes emergente "para confirmar la eliminación de los datos seleccionados," Nota del editor ah! El hermano tal vez, si layer.confirm pensó inmediatamente en este método es asíncrona, entonces reemplazado inmediatamente la ventana de capas, y se encontró que, efectivamente, layerUi dentro de este método realmente es asíncrona, poner inmediatamente el código en esto.

	layer.confirm("确认删除所选数据?",function(){
		 $.ajax({
           type:"post",
           url:"${ctx}/patrol/patrol!deleteBo.action",
           data:{"ids":ids},
           async:false,
	       traditional: true,
           success: function (data) {
        	   if(data.code=="1"){
        		   layer.msg('删除成功')
        	   }else{
        		   layer.msg('删除失败')
        	   }
             },
  		  });
//第二步的刷新
 F5();
 	   });

Esto finalmente es la primera implementación de layer.confirm, pero también encontró que en realidad tiene el código para realizar una actualización de datos antes me pop para el éxito de eliminación, esto es lo que ah, ah Ajax claramente sincronizada, estaba claro que se debe realizar en el conjunto del ajax abajo, ¿por qué fue actualizarlo.

Pensé, ¿verdad sincronización sincronización éxito , sólo puede Sync para sincronizar ajax solicitud, entonces no sólo refrescar puse éxito dentro, pero como programador tiene que llevar a cabo, siempre dispuestos a dar en esta situación inmediatamente pensé ajax, hay argumentos completos, cambia inmediatamente el código de la siguiente manera.

	layer.confirm("确认删除所选数据?",function(){
		 $.ajax({
           type:"post",
           url:"${ctx}/patrol/patrol!deleteBo.action",
           data:{"ids":ids},
           async:false,
	       traditional: true,
           success: function (data) {
        	   if(data.code=="1"){
        		   layer.msg('删除成功')
        	   }else{
        		   layer.msg('删除失败')
        	   }
             },
             complete: function(XMLHttpRequest, textStatus) { 
                //这里执行刷新
                F5();
            },
  		  });
 	   });

Ejecutar, pluma, una explosión, lo que realmente tiene que realizar una actualización completa en el interior, el éxito es asíncrona, a la mierda a completar y no debe ser la misma cosa, no creyentes van a la consulta de onda Baidu, se encontró que una gran cantidad de personas son por ejemplo.

Se utiliza para tratar la captura finalmente analogía, términos de funcionalidad, no del todo mal, pero el pedido completamente equivocada ah, parece una perspectiva diferente de los esclavos, la idea de ver las cosas no es lo mismo.

Y después de algunas pruebas, he encontrado que hay asíncrono cuestión sincrónica, los métodos completos se ejecuta en primer lugar, que sólo va a pedir al servidor, vuelve a una respuesta, pero el éxito que tenga que acceder al nivel de los datos, y luego devolver los datos, lo cual también el lado que su orden, por lo que finalmente cedió, poner el código en esto.

layer.confirm("确认删除所选数据?",function(){
		 $.ajax({
           type:"post",
           url:"${ctx}/patrol/patrol!deleteBo.action",
           data:{"ids":ids},
           async:false,
	       traditional: true,
           success: function (data) {
        	   if(data.code=="1"){
        		   layer.msg('删除成功')
        	   }else{
        		   layer.msg('删除失败')
        	   }
            //这里刷新
        	   F5();
             },
  		  });
 	   });

Así, obtener, aunque es un pequeño problema, pero en este momento, estoy comprensión más profunda de la diferencia entre el éxito y completa Ajax, mientras que su asíncrono síncrono también tienen una mejor comprensión.

Publicado 27 artículos originales · ganado elogios 1 · vistas 3654

Supongo que te gusta

Origin blog.csdn.net/qq_40111437/article/details/84967466
Recomendado
Clasificación