jquery ajax 同步执行,jQuery $.ajax 同步异步执行问题求解。

使用jQuery的Ajax获取数据,

html:


显示数据

javascript代码如下:

jQuery(document).ready(function($) {

$('.files-show').on('click', function(event) {

var $contents = $('.file-list-content'),

$url = "/files";

$.ajax({

type : "get",

url : url,

data : {},

success : function(res){

// console.log(res);

$contents.html(res);

}

});

});

});

上面的代码执行后在success中若是cosole.log(res);控制台会显示打印出数据,但如果是下一句$contents.html(res);这时候页面的所有点击事件都无法点击了,并且控制台提示警告:

Synchronous XMLHttpRequest on the main thread is deprecated because of its detrimental effects to the end user's experience.

For more help, check http://xhr.spec.whatwg.org/.

w3cschool上的解释:

async

类型:Boolean

默认值: true。

默认设置下,所有请求均为异步请求。如果需要发送同步请求,请将此选项设置为 false。

注意,同步请求将锁住浏览器,用户其它操作必须等待请求完成才可以执行。

在Ajax中加上async:true依然没用。

后台使用Yii,我直接渲染的一段html返回:

public function actionIndex()

{

$files = File::find()->where(['enable' => '1'])->orderBy('id DESC')->all();

if ($files) {

$page = $this->renderPartial('files', array(

'files' => $files

), true);

return $page;

}

}

渲染的是一个很简单的table:

ID

文件名

类型

大小

下载次数

操作

<?php echo $file->id; ?><?php echo $file->name; ?><?php echo $file->filetype; ?><?php echo $file->filesize ?><?php echo $file->download_num ?>

在浏览器控制台中输出res结果就是table的内容。

麻烦请解答一下,谢谢。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值