溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

JS怎么實現網頁搶購功能

發布時間:2021-04-21 10:43:03 來源:億速云 閱讀:458 作者:小新 欄目:web開發

小編給大家分享一下JS怎么實現網頁搶購功能,希望大家閱讀完這篇文章之后都有所收獲,下面讓我們一起去探討吧!

js有什么特點

1、js屬于一種解釋性腳本語言;2、在絕大多數瀏覽器的支持下,js可以在多種平臺下運行,擁有著跨平臺特性;3、js屬于一種弱類型腳本語言,對使用的數據類型未做出嚴格的要求,能夠進行類型轉換,簡單又容易上手;4、js語言安全性高,只能通過瀏覽器實現信息瀏覽或動態交互,從而有效地防止數據的丟失;5、基于對象的腳本語言,js不僅可以創建對象,也能使用現有的對象。

涉及到的內容:

1.chrome瀏覽器
2.js代碼
3.函數節流

第一步

打開chrome瀏覽器,使用組合鍵Ctrl+shift+i打開開發者工具,接下來如圖所示。JS怎么實現網頁搶購功能

點擊snippets

第二步

如圖所示

JS怎么實現網頁搶購功能

點擊new snippet -->輸入腳本‘名稱'-->Ctrl+s保存。

第三步

如圖所示

JS怎么實現網頁搶購功能

選擇新創建的腳本‘名稱',在如圖所示的第二步進行編輯js代碼。最后如第三步所示:run 運行代碼。

js腳本代碼

1.以下是網站上的代碼:

<body>
    <div class="box">
      <img class="img" src="image/pict.png" />
      <button class="btn" id='btn'>搶購</button>
    </div>
    <script type="text/javascript">
      /**
       * 搶購按鈕
       * 
       * */
      btn.onclick=function(){
        console.log('搶購成功!');
      };
    </script>
  </body>

每次點擊搶購 控制臺輸出 搶購成功!

2.腳本代碼

/**
* 最簡單的腳本代碼
* 版本1.0.1
*/
btn.click();//觸發按鈕執行click事件

/**
 * 使用for循環執行搶購的腳本代碼
 * 版本1.0.2
 * */
for(var i=0;i<100;i++){
  btn.click();
}

通過上邊的腳本js代碼可以知道,我們可以在chrome瀏覽器內置腳本,并控制執行。

JS怎么實現網頁搶購功能

當開發人員模擬真實環境的高并發情況,咱們就可以使用這種腳本的方式模擬測試。通過剛剛的腳本我們發現我們開發的頁面中的js是有很多問題的。假設【搶購按鈕】觸發的是請求數據接口。則會出現在一個時間內發出n個請求。處理這個問題可以參考防止重復提交

<!DOCTYPE html>
<html>
  <head>
    <meta charset="UTF-8">
    <title>防止ajax重復提交</title>
  </head>
  <body>
    <button id="btn">提交</button>
    <script>

      /**
       * 模擬ajax提交
       * @fn 回調函數
       * */
      function Ajax(fn){
        setTimeout(function(){
          var data= {result:true,msg:'提交成功!'};
          fn(data);
        },2000);
      }
      /**
       * btn click 提交事件
       * 
       * */
      btn.onclick=function(){
        //檢查 按鈕是否被鎖住,鎖住直接rerun
        if(btn.getAttribute('lock')){
          return;
        }
        //上鎖
        btn.setAttribute('lock',1);
        //更改狀態
        btn.innerText='提交中...';
        //模擬ajax提交
        Ajax(function(data){
          //請求成功
          if(data.result){
            console.log('請求成功');
            //請求成功解鎖
            btn.setAttribute('lock',"");
            //還原狀態
            btn.innerText='提交';
          }else{
            console.log('請求失敗');
            //請求失敗解鎖
            btn.setAttribute('lock',"");
            //還原狀態
            btn.innerText='提交';
          }
        });
      }
    </script>
  </body>
</html>

作者:java-script
鏈接:https://juejin.im/post/59bf6b6ff265da064261ba47
來源:掘金
著作權歸作者所有。商業轉載請聯系作者獲得授權,非商業轉載請注明出處。

也可以使用函數節流方式處理。如下代碼:

//網站上寫的代碼
/**
 * 搶購按鈕
 * 
 * */
btn.onclick=function(){
   throttle(function(){
    console.log('搶購成功!');
  },500);
};
/**
 * 函數節流
 * @fn {function} 回調函數
 * @time {number} 時間,毫秒
 * 
 * */
function throttle(fn,time){
  if(throttle.id){
    clearTimeout(throttle.id);
  };
  throttle.id=setTimeout(function(){
    fn();
  },time||200);
}

通過以上方式我們可以過濾掉惡意循環觸發事件。這種函數節流方式也得到大家的一致認可與推廣。

看完了這篇文章,相信你對“JS怎么實現網頁搶購功能”有了一定的了解,如果想了解更多相關知識,歡迎關注億速云行業資訊頻道,感謝各位的閱讀!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

js
AI

亚洲午夜精品一区二区_中文无码日韩欧免_久久香蕉精品视频_欧美主播一区二区三区美女