西西軟件園多重安全檢測下載網(wǎng)站、值得信賴的軟件下載站!
軟件
軟件
文章
搜索

首頁編程開發(fā)javascript|JQuery → jQuery Ajax 可以防止用戶重復(fù)提交的代碼實現(xiàn)

jQuery Ajax 可以防止用戶重復(fù)提交的代碼實現(xiàn)

相關(guān)軟件相關(guān)文章發(fā)表評論 來源:西西整理時間:2012/5/31 19:38:48字體大。A-A+

作者:佚名點擊:653次評論:1次標簽: jQuery

  • 類型:編程輔助大小:109KB語言:中文 評分:5.0
  • 標簽:
立即下載

重復(fù)提交很蛋疼,每次的解決辦法是,在前端提交按鈕上做功夫,我baidu 也google了,姿勢換了N次,貌似找不到適合自己的項目的方法,好吧,寫一個。

【正文】:先上代碼:

View Code

/**
 * jQuery Ajax 防止重復(fù)提交
 * @author : suntiger035
 * @data   : 2012-5-31 17:13
 */

(function($){
    var $ajax = $.ajax;
    $ajax._reuqestsCache = {};
    //設(shè)置全局 AJAX 默認選項。
    $.ajaxSetup({
        mode: "block",
        index: 0,
        cache: false,
        beforeSend: function(xhr, s) {
            if (s.mode) {
                if (s.mode === "abort" && s.index) {
                    if ($ajax._reuqestsCache[s.index]) {
                        $ajax._reuqestsCache[s.index].abort();
                    }
                }
                $ajax._reuqestsCache[s.index] = xhr;
            }
        }
    });    
    
    //這里我是重寫了getJSON方法,當然了,這名字隨便你改,別覆蓋jQuery本身的就可以了
    
    $.extend({
        getJSON: function(url, data, callback, options) {
            options = $.extend({}, arguments[arguments.length - 1] || {});
            if (options.mode === "block" && options.index) {
                if ($ajax._reuqestsCache[options.index]) {
                    return false;
                }
                $ajax._reuqestsCache[options.index] = true;
            }
            if (options.crossDomain) {
                options.dataType = "jsonp";
            }
            var type = "json";
            if ($.isFunction(data)) {
                callback = data;
                data = null;
            }
            options = $.extend({
                type: "GET",
                url: url,
                data: data,
                success: callback,
                dataType: "json"
            }, options);
            return $.ajax(options);
        }
    });    
    
    $(document).ajaxComplete(function(a,b,c){
        if (c.index) $ajax._reuqestsCache[c.index] = null;    
    })
    
})(jQuery);

增加的參數(shù)描述

jQuery ajax原本的參數(shù)不變,增加了,index,mode,crossdomain 三個參數(shù)(jQuery 1.5增加了crossdomain,這里保留為了向后兼容)

index : 每個請求的索引,默認為0,任何值,

mode :請求模式,有兩個值,“abort”,“block”

            abort : 將之前的請求abort掉,

            block : 將之后的請求abort掉。

crossdomain : true時候,為jsonp請求,跨域 


方法描述$.getJSON(),用法跟原本的getJSON方法一致,只不過,我增加了一個參數(shù),參數(shù)設(shè)置,始終是最后一個參數(shù)
說明如上。

測試代碼

<input type="button" id="btn" value="click me" />
<script type="text/javascript">

$("#btn").click(function(){
    
    $.getJSON('handle/try-1.php', {aa:11},function(data){
        console.log(data);    
    },{
        mode : 'block',
        index : "111111111"    
    });
    
    $.getJSON('handle/try-1-1.php', {aa:11},function(data){
        console.log(data);    
    });    
    
});
</script>

demo---mode : "block"

    $.getJSON('handle/try-1.php', {aa:11},function(data){
        console.log(data);    
    },{
        mode : 'block',
        index : "111111111"    
    });

 請求顯示:

 

 demo---mode : "abort"

    $.getJSON('handle/try-1.php', {aa:11},function(data){
        console.log(data);    
    },{
        mode : 'abort',
        index : "111111111"    
    });

 請求顯示:

 

    html編輯器
    (73)html編輯器
    我們做網(wǎng)頁的時候最難找的就是編輯器,網(wǎng)上找一個吧,要不是圖片上傳錯誤,就是到處都是錯誤,垃圾太多.大家都需要一個簡單,速度快的.西西為您提供最好用的編輯器一站式下載編輯器定義編輯器指的是一類編輯制作工具,可自定義窗囗,編輯主題索引,可選擇添搜索頁,無任何不自由。編輯器哪個好用小編個人比較喜歡使用和,這兩款編輯器軟件都有不錯的表現(xiàn)。至于編輯器哪個好用,這就要根據(jù)你的個人需求去選擇對應(yīng)的編輯器啦...更多>>
    • UltraEdit-32中文版21.20.1001 中文

      06-29 / 19.5M

      推薦理由:ultraEdit 32 破解版 簡體中文 內(nèi)有安裝說明,完全免費,無試用期的。該軟件功能強大,能打開各種格式的文件
    • pyscripter x642.5.3 官方最新版

      11-10 / 4.7M

      推薦理由:python編輯器,代碼補全、參數(shù)提示補全工具,這個工具其實非常重要,可以大大提高開發(fā)效率,減少出錯。很滿
    • 快手AAuto Studio10.152 綠色中文免

      02-20 / 8.5M

      推薦理由:快手aauto是由一鶴軟件耗時四年開發(fā)新一代編程語言。完美支持靜態(tài)類型、動態(tài)類型,完美支持com、dllapi、re
    • ultraedit64位破解版v22.20.0.49 綠

      03-31 / 37.9M

      推薦理由:UltraEdit是最強大的一款超值文本編輯器!ultraedit64位破解版,適用于Windows64位系統(tǒng)使用,此版為綠色破解
    • Dreamweaver cs6中文版官方原版

      11-19 / 279.7M

      推薦理由:AdobeDreamweaverCS6是AdobeCreativeSuite6系列中的HTML編輯器和網(wǎng)頁設(shè)計軟件,是最優(yōu)秀的可視化網(wǎng)頁設(shè)計工
    • Adobe Dreamweaver CS5官方簡體中文

      05-15 / 436.8M

      推薦理由:Adobe Dreamweaver CS5 軟件使設(shè)計人員和開發(fā)人員能充滿自信地構(gòu)建基于標準的網(wǎng)站。由于同新的 Adobe CS Li
    dreamweaver cs6
    (14)dreamweaver cs6
    新版本使用了自適應(yīng)網(wǎng)格版面創(chuàng)建頁面,在發(fā)布前使用多屏幕預(yù)覽審閱設(shè)計,可大大提高工作效率。改善的性能,更高效地傳輸大型文件。實時視圖和多屏幕預(yù)覽面板可呈現(xiàn)代碼,更能夠檢查自己的工作。曾經(jīng)風靡一時的網(wǎng)頁三劍客成員之一是目前應(yīng)用最廣的網(wǎng)頁制作軟件,原本是由公司所開發(fā)的著名網(wǎng)站開發(fā)工具,隨被收購后,改名為。它是第一套針對專業(yè)網(wǎng)頁設(shè)計師特別發(fā)展的視覺化網(wǎng)頁開發(fā)工具,以及在之后推出的針對專業(yè)網(wǎng)頁圖像設(shè)計的,三者...更多>>
    • Dreamweaver cs6中文版官方原版

      11-19 / 279.7M

      推薦理由:AdobeDreamweaverCS6是AdobeCreativeSuite6系列中的HTML編輯器和網(wǎng)頁設(shè)計軟件,是最優(yōu)秀的可視化網(wǎng)頁設(shè)計工
    • Dreamweaver cc amtlib.dll補丁

      07-05 / 834KB

      推薦理由:Adobe Dreamweaver CC 13.0 build 6390多語言正式版的破解補丁,破解后程序不再提示剩余天數(shù)與激活注冊。關(guān)
    • Dreamweaver CS5 HTML 5 擴展包

      06-22 / 5.7M

      推薦理由:安裝了該擴展后再也不用擔心不記得難記的css3樣式代碼了! 剛裝 Dreamweaver CS5 的時候,發(fā)現(xiàn)新建文檔的時
    • Dreamweaver插件包西西整理

      01-08 / 2.7M

      推薦理由:西西小編整理的一些比較常用的Dreamweaver插件,希望能對大家有所幫助!persistent_layers 不管滾動條如何拉
    • Adobe Dreamweaver CS4中文精簡版

      04-11 / 84.5M

      推薦理由:使用業(yè)界領(lǐng)先的Web 創(chuàng)作工具之一構(gòu)建世界級的網(wǎng)站和應(yīng)用程序。Adobe® Dreamweaver® CS4 軟件是 W
    • Dreamweaver jQuery智能提示插件1.

      07-31 / 109KB

      推薦理由:1.2.0版本插件在1.0.0插件基礎(chǔ)上進一步修改,版權(quán)信息僅保留致謝信息,刪除作者為了代碼整體提示美觀度,故

    相關(guān)評論

    閱讀本文后您有什么感想? 已有人給出評價!

    • 8 喜歡喜歡
    • 3 頂
    • 1 難過難過
    • 5 囧
    • 3 圍觀圍觀
    • 2 無聊無聊

    熱門評論

    最新評論

    發(fā)表評論 查看所有評論(1)

    昵稱:
    表情: 高興 可 汗 我不要 害羞 好 下下下 送花 屎 親親
    字數(shù): 0/500 (您的評論需要經(jīng)過審核才能顯示)