使用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的内容。
麻烦请解答一下,谢谢。