天天躁日日躁狠狠躁AV麻豆-天天躁人人躁人人躁狂躁-天天澡夜夜澡人人澡-天天影视香色欲综合网-国产成人女人在线视频观看-国产成人女人视频在线观看

前端開發(fā)中使用”有限狀態(tài)機(jī)“解決復(fù)雜的交互問題

  前端開發(fā)是有邏輯的,這點(diǎn)毋庸置疑。程序員的思維邏輯賦予了代碼各種能力,但是前端開發(fā)中經(jīng)常面對(duì)的是用戶的操作。在一個(gè)比較復(fù)雜的頁面中(貌似現(xiàn)在也很少有簡(jiǎn)單頁面了),用戶的操作是不可預(yù)見的,假如有很多按鈕,每個(gè)按鈕都會(huì)做一件自己獨(dú)一無二的事,如果上帝保佑所有的這些操作,這些事件都彼此沒有限制,而且結(jié)果互不影響,那沒有問題。但在開發(fā)中好像沒有這種好運(yùn)氣,所以經(jīng)常需要協(xié)調(diào)和平衡這些函數(shù)之間的執(zhí)行。

  如果你使用的是純JS或者單獨(dú)僅有jQuery的情況下,遇到這種讓人焦頭爛額的情形會(huì)尤為明顯,前端MVC一定程度上隱藏了并處理了這些問題,但是也并不完全。這個(gè)時(shí)候你可能需要了解一下關(guān)于”有限狀態(tài)機(jī)“的概念,前端開發(fā)中這應(yīng)該是一個(gè)很有用的東西。

  描述一下”有限狀態(tài)機(jī)“:

有限狀態(tài)自動(dòng)機(jī),簡(jiǎn)稱狀態(tài)機(jī),是表示有限個(gè)狀態(tài)以及在這些狀態(tài)之間的轉(zhuǎn)移和動(dòng)作等行為的數(shù)學(xué)模型。

狀態(tài)總數(shù)(state)是有限的。

任一時(shí)刻,只會(huì)處于一種狀態(tài)中。

在某種條件下,會(huì)從一種狀態(tài)轉(zhuǎn)變到另一種狀態(tài)中。

在維基百科中稱:有限狀態(tài)機(jī)FSM是設(shè)計(jì)和實(shí)現(xiàn)事件驅(qū)動(dòng)程序內(nèi)復(fù)雜行為組織原則的有力工具。

  對(duì)于前端來說,尤其是Javascript編程時(shí),這個(gè)模型的意義就在于可以將其套用在很多對(duì)象上。具體個(gè)例子,比如一個(gè)按鈕平時(shí)就是正常的按鈕,當(dāng)你點(diǎn)擊后變成一個(gè)input。當(dāng)然你可能會(huì)說這么簡(jiǎn)單的功能,我直接用jQuery甚至不用都可以,操作DOM顯示和隱藏就好了。如果你還抱有這種天真的想法,我只能說你沒遇到過讓你痛不欲生的頁面。。。當(dāng)頁面復(fù)雜到一定程度,單純操作DOM去處理前端只會(huì)加快你瘋掉的進(jìn)程。

  這里對(duì)于Button套用有限狀態(tài)機(jī)的模型,相當(dāng)btn對(duì)象只有兩個(gè)狀態(tài),顯示狀態(tài)和編輯狀態(tài)。看看代碼吧:

var btn = {    // 當(dāng)前狀態(tài)    currentState: 'btn',    // 綁定事件    initialize: function() {      var self = this;      self.on("click", self.transition);    },    // 狀態(tài)轉(zhuǎn)換    transition: function(event){      switch(this.currentState) {        case "btn":          this.currentState = 'input';          doSomething();          break;        case "input":          this.currentState = 'btn';          doSomething();          break;        default:          console.log('Invalid State!');          break;      }    }   };  

it知識(shí)庫前端開發(fā)中使用”有限狀態(tài)機(jī)“解決復(fù)雜的交互問題,轉(zhuǎn)載需保留來源!

鄭重聲明:本文版權(quán)歸原作者所有,轉(zhuǎn)載文章僅為傳播更多信息之目的,如作者信息標(biāo)記有誤,請(qǐng)第一時(shí)間聯(lián)系我們修改或刪除,多謝。

主站蜘蛛池模板: 97超碰免费人妻中文 | 亚洲午夜久久久精品影院 | 最新无码二区日本专区 | 免费看到湿的小黄文软件APP | 色妞色视频一区二区三区四区 | 被老总按在办公桌吸奶头 | 99久久蜜臀亚洲AV无码精品 | 小雪奶水涨翁工帮吸的推荐语录 | av影音先锋天堂网 | 久久99r66热这里有精品 | 娇妻玩4P被三个男人伺候电影 | 99国产强伦姧在线看RAPE | 久久精品国产免费中文 | 免费成年人在线视频 | 少妇久久久久久被弄高潮 | 亚洲午夜久久久精品影院 | 无遮18禁在线永久免费观看挡 | 亚洲AV怡红院影院怡春院 | 欧美激情性AAAAA片欧美 | 亚洲国产精麻豆 | 国产三级精品三级男人的天堂 | 小SB几天没做SAO死了H | 欧美日韩亚洲中字二区 | 九热这里只有精品 | 久久人妻少妇嫩草AV蜜桃35I | 精品久久久久中文字幕加勒比东京热 | 无码AV精品久久一区二区免费 | 寂寞骚妇女被后入式抽插 | 9277高清在线观看视频 | 十九禁啊啪射视频在线观看 | 97在线观看免费 | 午夜噜噜噜私人影院在线播放 | 国产在线自天天人人 | 一道精品视频一区二区三区 | 無码一区中文字幕少妇熟女H | 九九热精品在线观看 | 挠黑色超薄丝袜脚心vk40分钟 | 欧美黄色xxx | 精品无码国产自产在线观看 | 女性私密五月天 | 久久精品国产99欧美精品亚洲 |