首先,将点击处的URL改为两个“##”,添加锚点,可以防止点击时跳回页面顶部,重新加载页面也不会跑偏
eg:
$btn_schedule = Html::a('安排任务', '##', $schedule);
最重要的:在$.pjax.reload() 后面加一个参数 async:false ,false为同步,表示执行完之后才继续往下执行
eg:
$.ajax({
url: action,
async:false,
success: function (data) {
console.log('success!');
$.pjax.reload({container:"#idea_index", async:false});
}
});
补充:
发现将ajax改为同步模式在 Chrome 中无法使用
Synchronous XMLHttpRequest on the main thread is deprecated because of its detrimental effects to the end user’s experience. For more help, check https://xhr.spec.whatwg.org/.
大概意思就是:在主线程里使用同步的ajax请求对用户体验有影响,所以不让用了。。。。。
所以做出如下改变:
$.ajax({
url: action,
success: function (data) {
console.log('success!');
$.pjax.reload({container: "#idea_index", timeout: 5000});
}
});
将pjax 超时时间设置为5s