jQuery 提供了两个方法 ajaxStartajaxComplete 分别用来监控 ajax 请求的过程,前者可以设置当 ajax 请求开始时要执行的操作,后者可以设置当 ajax 请求结束时执行的操作。

$(function () {
    $(document).ajaxStart(function () {
        $("#task_prog").show()
        $(this).attr("disabled", true)
    })
    
    $(document).ajaxComplete(function () {
        $("#task_prog").hide()
        $(this).attr("disabled", false)
    })
})

jQuery 作为 vuejs 的数据源

需要在 $.ajax() 请求之前声明 var _self = this,否则无法给 vue 传值。

    var backup = new Vue({
        el: '#backup',
        data: {
            message: '',
        },
        methods: {
            backup: function(){
                var _self = this
                var file_path = $("#file_path").val()
                if (file_path) {
                    $.ajax({
                        type: 'post',
                        url: '/backup/',
                        data: { file_path: file_path },
                        success: function (data, status) {
                            _self.message = data
                            console.log(data)
                            $("#notice").show()
                        },
                    })
                } else {
                    alert('请输入要备份的文件路径!')
                }
                
            },
        },
        delimiters: ['{[', ']}'],
    })