keypress ->keyup 對于輸入法開啟時: keypress: 這三個事件中最最特別的事件的說,如果巧妙運用可以事半功倍: 1. 首先對于大部分功能鍵是沒有keypress事件的 Caps lock ,shift,alt,ctrl," />

国产99久久精品_欧美日本韩国一区二区_激情小说综合网_欧美一级二级视频_午夜av电影_日本久久精品视频

最新文章專題視頻專題問答1問答10問答100問答1000問答2000關鍵字專題1關鍵字專題50關鍵字專題500關鍵字專題1500TAG最新視頻文章推薦1 推薦3 推薦5 推薦7 推薦9 推薦11 推薦13 推薦15 推薦17 推薦19 推薦21 推薦23 推薦25 推薦27 推薦29 推薦31 推薦33 推薦35 推薦37視頻文章20視頻文章30視頻文章40視頻文章50視頻文章60 視頻文章70視頻文章80視頻文章90視頻文章100視頻文章120視頻文章140 視頻2關鍵字專題關鍵字專題tag2tag3文章專題文章專題2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章專題3
問答文章1 問答文章501 問答文章1001 問答文章1501 問答文章2001 問答文章2501 問答文章3001 問答文章3501 問答文章4001 問答文章4501 問答文章5001 問答文章5501 問答文章6001 問答文章6501 問答文章7001 問答文章7501 問答文章8001 問答文章8501 問答文章9001 問答文章9501
當前位置: 首頁 - 科技 - 知識百科 - 正文

suggestion開發小結以及對鍵盤事件的總結(針對中文輸入法狀態)_javascript技巧

來源:懂視網 責編:小采 時間:2020-11-27 21:01:44
文檔

suggestion開發小結以及對鍵盤事件的總結(針對中文輸入法狀態)_javascript技巧

suggestion開發小結以及對鍵盤事件的總結(針對中文輸入法狀態)_javascript技巧:重要的鍵盤事件: 事件順序:keydown -> keypress ->keyup 對于輸入法開啟時: keypress: 這三個事件中最最特別的事件的說,如果巧妙運用可以事半功倍: 1. 首先對于大部分功能鍵是沒有keypress事件的 Caps lock ,shift,alt,ctrl,
推薦度:
導讀suggestion開發小結以及對鍵盤事件的總結(針對中文輸入法狀態)_javascript技巧:重要的鍵盤事件: 事件順序:keydown -> keypress ->keyup 對于輸入法開啟時: keypress: 這三個事件中最最特別的事件的說,如果巧妙運用可以事半功倍: 1. 首先對于大部分功能鍵是沒有keypress事件的 Caps lock ,shift,alt,ctrl,

重要的鍵盤事件:
事件順序:keydown -> keypress ->keyup
對于輸入法開啟時:
keypress:
這三個事件中最最特別的事件的說,如果巧妙運用可以事半功倍:
1. 首先對于大部分功能鍵是沒有keypress事件的
Caps lock ,shift,alt,ctrl,num lock、、、慶幸的是enter擁有此事件
2. 對于字母,數字,press返回的keyCode是不可靠的
在IE和webkit 下 返回的是ASCII code
firfox下永遠返回0
但是 對于keyUP keyDOWN事件 鍵值是完全統一的
3. KeyPress 只能捕獲單個字符
KeyDown 和KeyUp可以捕獲組合鍵。故可能涉及組合鍵的功能需要綁定在down up事件上
對于中文輸入法開啟時個瀏覽器對事件的不同相應以及解決方法:
在中文輸入法開啟狀態下:
Firefox:當點擊字母鍵時,會觸發這樣的事情:

為什么叫做虛擬失焦呢: 這種狀態下并未真正觸發失焦狀態,但是卻屏蔽了所有輸入框綁定的鍵盤事件

IE,webkit : 但用戶點擊字母鍵,又會發生這樣的事情

啟發: 由于在這種狀態下 是可以捕捉keyup,keydown從而捕捉KEYCODE的,前端可以通過模擬KEYCODE入輸入框實現輸入法與輸入框的同步狀態,并觸發在輸入狀態時便同步suggestion。

那么如何避免,在輸入法運行時用戶在敲擊回車鍵,觸發回車鍵原來的事件呢?
看了上面兩個圖,這么一來便很簡單了 -------keyPress事件綁定原來的事件,如觸發搜索等
keyup綁定 在輸入法運行時,回車,空格等需要觸發的事件,亦可以用來檢測退出搜索框

那么如何檢測用戶在輸入后的一點呢?
通過配合上一個問題中判斷出的keyUP事件 ,如果需要在輸入法出現時屏蔽事件,只要綁定到keypress事件便可以了
對suggestion的總結:
從開始講起:
在suggestion的開發中,最大的阻礙就是檢查用戶行為了,而這些用戶行為主要會聚在小小的輸入框上,對鍵盤事件的巧妙運用,可以減少代碼量,提升性能,最大程度上優化用戶體驗。

主要的用戶行為總結如下:
1.改變輸入內容(增加,刪除,粘貼)--其中,最重要的便是連續輸入了
2.敲擊功能鍵--主要key值為:
keyCode :13 --回車鍵
keyCode :27 --esc鍵
keyCode : 38--上方向鍵 -->webkit內核下會自動定位到首部,記得要preventDefault哦~
keyCode :40 --下方向鍵
開發中還遇到了一些小問題,和彎路:
首先從思想上來個總結:
1. 錯誤的思路:
之一:每次用戶敲擊鍵盤便發送請求
這無疑是就簡單是方式,但是卻需要大量的AJAX,而且大部分是沒有展現機會的,好的前端代碼,應該充分考慮到前后端交互中虛耗,最大程度上減少虛耗。
之二:每隔一段時間檢測輸入框內容:
每隔一段時間邊執行一次代碼,浪費性能就不用說什么了,最重要的是,這一機制不能很好的掌控用戶輸入事件與js檢測的先后順序,
檢測完畢如果正好發生在了用戶輸入之后,便會出現錯誤。雖然可以用檢測當前輸入框狀態來彌補,但是體驗卻很差,而且虛耗了很多ajax請求。
2.優化后的思路:
綁定在key敲擊事件后
第一種方式開發完后,我發現在自測時,由于不能準確監控用戶行為的時間戳,導致了眾多bug,再一一修復后,一個更好的思路萌發了。
通過檢測key的敲擊事件,來判斷是否發送請求,并屏蔽連續敲擊事件。
具體思路:
當用戶聚焦輸入框時,開始監控keydown事件,記入此時輸入框狀態,當有keydown事件并輸入框能容改變—》100毫秒后檢測當前輸入框狀態如果與之前不相符擇可向后端發送AJAX請求
這樣一來,根據用戶的輸入,輸入頻率,判斷ajax請求數,并通過閥值的限制,減少ajax請求。用戶輸入的多,js檢測的就多,ajax便多,用戶不動,便沒有js檢測和ajax,輸入的慢則少,很好的減少了虛耗。

聲明:本網頁內容旨在傳播知識,若有侵權等問題請及時與本網聯系,我們將在第一時間刪除處理。TEL:177 7030 7066 E-MAIL:11247931@qq.com

文檔

suggestion開發小結以及對鍵盤事件的總結(針對中文輸入法狀態)_javascript技巧

suggestion開發小結以及對鍵盤事件的總結(針對中文輸入法狀態)_javascript技巧:重要的鍵盤事件: 事件順序:keydown -> keypress ->keyup 對于輸入法開啟時: keypress: 這三個事件中最最特別的事件的說,如果巧妙運用可以事半功倍: 1. 首先對于大部分功能鍵是沒有keypress事件的 Caps lock ,shift,alt,ctrl,
推薦度:
標簽: 輸入法 輸入 事件
  • 熱門焦點

最新推薦

猜你喜歡

熱門推薦

專題
Top
主站蜘蛛池模板: 亚洲色图日韩精品 | 在线欧美a | 国产亚洲精品sese在线播放 | 国产在线看不卡一区二区 | 国产日韩一区二区三区 | 亚洲欧美日韩第一页 | 久久久久九九 | 亚洲欧美另类自拍第一页 | 国产在线观看精品 | 久久婷婷久久一区二区三区 | 国产高清a毛片在线看 | 超在线视频 | 亚洲精品乱码久久久久久 | 亚洲 欧美 日韩在线 | 亚洲欧美另类色图 | 亚洲欧美久久精品一区 | 日韩欧美在线不卡 | 国产精品九九久久精品女同 | 欧美另类日韩中文色综合 | 日本一区二区三区免费观看 | 欧美日韩一区二区三区在线 | 欧美三级在线看 | 国产成人影院 | 伊人久久精品久久亚洲一区 | 一本大道香蕉视频在线观看 | 欧美视频精品 | 免费一看一级毛片全播放 | 欧美亚洲国产精品第一页 | 国产免费一区二区三区 | 国产 欧美 日韩 在线 | 国产精品…在线观看 | 国产人成久久久精品 | 国产精品久久久天天影视香蕉 | 国产成a人片在线观看视频下载 | 久久精品国产精品亚洲毛片 | 一级毛片一级毛片一级级毛片 | 欧美瑟图 | 欧美雌雄双性人交xxxx | 国产精品免费观看视频播放 | 国产女同一区二区三区五区 | 免费一级a毛片在线播 |