js-trigger https://tanwei-cc.github.io/js-trigger/
js-trigger是一個JavaScript觸發器插件,可經過指定頻次、指定時間內觸發指定的處理函數,使用場景如:限制日誌頻繁上傳、限制ajax頻繁調用、錯誤提醒、網絡狀態檢測等javascript
Features
- UMD Supported
- Node Supported
- Browser Supported
Browser Supported
Platform | Device | Version |
---|---|---|
Desktop | Chrome | all |
Desktop | Firefox (Gecko) | 4.0(2) |
Desktop | IE | 9 |
Desktop | Opera | 11.60 |
Desktop | Safari | 5 |
Mobile | Android | all |
Mobile | Firefox (Gecko) | 4.0(2) |
Mobile | IE Mobile | ? |
Mobile | Opera Mobile | 11.50 |
Mobile | Safari Mobile | all |
Installation
npm install --save tanwei-cc/js-trigger
Examples & Tests
import Trigger from 'js-trigger'; //ES6引入 var Trigger = require('js-trigger').default; //ES5引入 window.Trigger; //browser引入 var trigger = Trigger.create({ name: '第一個觸發器', frequency: 5, //每隔5次觸發 interval: 30, //每隔30s觸發 maxHandlerFrequency: 10, //最多觸發10次 handlerInterval: 30, //距離上次觸發超過30s再觸發 firstTrigger: true //首次馬上觸發 }); /** * 觸發器監聽事件處理函數 * @param {Object} state - 當前狀態 * @param {number} handlerCounter - 觸發次數統計 * @param {Date} startTime - 開始時間 * @param {Date} endTime - 結束時間 * @param {number} duration - 持續時長(ms) * @param {Object[]} data - 追加數據,每次check進行傳入 */ trigger.on(function(state){ //do something }); setInterval(function(){ trigger.check('每次check傳入的數據'); }, 1000); //中止觸發器 trigger.stop(); //打開觸發器 trigger.open(); //重置觸發器 trigger.reset(); //移除觸發器監聽事件 trigger.off(handler); //重置全部觸發器實例 Trigger.resetAll(); //打開全部觸發器實例 Trigger.openAll(); //中止全部觸發器實例 Trigger.stopAll(); //移除全部觸發器實例 Trigger.removeAll();