ajax 중복 제출 방지

1398 단어 전단ajax
다음 방법 은 요청 을 새로 고치 지 않 은 상태 에서 같은 요청 을 한 번 제출 하 는 것 입 니 다. 다른 요구 가 있 으 면 다음 주석 에서 수정 할 수 있 습 니 다.
(function ($) {
        var pendingRequests = {};
        //   ajax       filter
        $.ajaxPrefilter(function (options, originalOptions, jqXHR) {

            //          
            var key = generatePendingRequestKey(options);
            if (!pendingRequests[key]) {
                //storePendingRequest(key, jqXHR);
                pendingRequests[key] = jqXHR;
            } else {
                // or do other
                jqXHR.abort();
            }

            var complete = options.complete;
            options.complete = function (jqXHR, textStatus) {
                // clear from pending requests
                // pendingRequests[key] = null;
                //  5     
                /*setTimeout(function(){
                    delete pendingRequests[key];
                },5000);*/
                if ($.isFunction(complete)) {
                    complete.apply(this, arguments);
                }
            };
        });

        function generatePendingRequestKey(opts) {
            var url = opts.url;
            var type = opts.type;
            var data = opts.data;
            var str = url + type;
            if (data) {
                str += data;
            }
            return str;
        }
    }(jQuery));

훌륭 한 문장

좋은 웹페이지 즐겨찾기