首頁  >  文章  >  web前端  >  如何用JS程式碼實現網頁搶購功能

如何用JS程式碼實現網頁搶購功能

小云云
小云云原創
2017-11-29 10:11:248869瀏覽

身為程式設計師,我們會遇到和很多的開發問題,本章內容小編就為大家分享一篇如何用JS實現網頁搶購功能,以下我們是透過chrome瀏覽器的開發者功能,實現如何用JS程式碼完成搶購功能以及如何透過chrome瀏覽器調試並載入自己寫的JS。

涉及的內容:

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

第一步

#開啟chrome瀏覽器,使用組合鍵Ctrl+shift+i開啟開發者工具,接下來如圖所示。

如何用JS程式碼實現網頁搶購功能

點選snippets

第二步

如圖

如何用JS程式碼實現網頁搶購功能


如何用JS程式碼實現網頁搶購功能


點選new snippet -->輸入腳本'名稱'-->Ctrl+s儲存。

第三步

如圖所示


#選擇新建立的腳本'名稱',如圖所示的第二步進行編輯js程式碼。最後如第三步驟所示:run 運行程式碼。 如何用JS程式碼實現網頁搶購功能

js腳本程式碼


1.以下是網站上的程式碼:

<body>
    <p class="box">
      <img  class="img" src="image/pict.png" / alt="如何用JS程式碼實現網頁搶購功能" >
      <button class="btn" id=&#39;btn&#39;>抢购</button>
    </p>
    <script type="text/javascript">
      /**
       * 抢购按钮
       * 
       * */
      btn.onclick=function(){
        console.log(&#39;抢购成功!&#39;);
      };
    </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是有很多問題的。假設【搶購按鈕】觸發的是請求資料介面。則會出現在一個時間內發出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:&#39;提交成功!&#39;};
          fn(data);
        },2000);
      }
      /**
       * btn click 提交事件
       * 
       * */
      btn.onclick=function(){
        //检查 按钮是否被锁住,锁住直接rerun
        if(btn.getAttribute(&#39;lock&#39;)){
          return;
        }
        //上锁
        btn.setAttribute(&#39;lock&#39;,1);
        //更改状态
        btn.innerText=&#39;提交中...&#39;;
        //模拟ajax提交
        Ajax(function(data){
          //请求成功
          if(data.result){
            console.log(&#39;请求成功&#39;);
            //请求成功解锁
            btn.setAttribute(&#39;lock&#39;,"");
            //还原状态
            btn.innerText=&#39;提交&#39;;
          }else{
            console.log(&#39;请求失败&#39;);
            //请求失败解锁
            btn.setAttribute(&#39;lock&#39;,"");
            //还原状态
            btn.innerText=&#39;提交&#39;;
          }
        });
      }
    </script>
  </body>
</html>

 

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

//网站上写的代码
/**
 * 抢购按钮
 * 
 * */
btn.onclick=function(){
   throttle(function(){
    console.log(&#39;抢购成功!&#39;);
  },500);
};
/**
 * 函数节流
 * @fn {function} 回调函数
 * @time {number} 时间,毫秒
 * 
 * */
function throttle(fn,time){
  if(throttle.id){
    clearTimeout(throttle.id);
  };
  throttle.id=setTimeout(function(){
    fn();
  },time||200);
}

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

以上內容是JavaScript實現網頁搶購功能的教程,不僅如此,我們還學會了製做簡單的js腳本,也學到一種簡單的阻止js腳本的方,大家趕緊動手操作一下吧。

相關推薦:#########解析秒殺搶購思路以及高並發下資料安全############php結合redis實現高並發下的搶購、秒殺功能的實例############js 模仿網路上的限時搶購效果_時間日期######

以上是如何用JS程式碼實現網頁搶購功能的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn