• <fieldset id="8imwq"><menu id="8imwq"></menu></fieldset>
  • <bdo id="8imwq"><input id="8imwq"></input></bdo>
    最新文章專題視頻專題問答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
    當前位置: 首頁 - 科技 - 知識百科 - 正文

    js仿微博實現統計字符和本地存儲功能_javascript技巧

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

    js仿微博實現統計字符和本地存儲功能_javascript技巧

    js仿微博實現統計字符和本地存儲功能_javascript技巧:隨著移動設備和Web應用的普及,為了更好的便于用戶的使用,對于網頁或應用程序的用戶體驗要求就越來越高,確實是這樣,作為用戶更喜歡選擇用戶體驗效果好的網站或應用程序,所以作為開發者的我們就需要開發出更人生化的應用程序了。 相信許多人有使用微博的經
    推薦度:
    導讀js仿微博實現統計字符和本地存儲功能_javascript技巧:隨著移動設備和Web應用的普及,為了更好的便于用戶的使用,對于網頁或應用程序的用戶體驗要求就越來越高,確實是這樣,作為用戶更喜歡選擇用戶體驗效果好的網站或應用程序,所以作為開發者的我們就需要開發出更人生化的應用程序了。 相信許多人有使用微博的經
    隨著移動設備和Web應用的普及,為了更好的便于用戶的使用,對于網頁或應用程序的用戶體驗要求就越來越高,確實是這樣,作為用戶更喜歡選擇用戶體驗效果好的網站或應用程序,所以作為開發者的我們就需要開發出更人生化的應用程序了。

    相信許多人有使用微博的經驗,像微博這樣的社交平臺,好的用戶體驗就變得尤其重要了。

    例如:我們在發微博時,文本框會實時地提示我們剩余字符數,這樣人性化的提示方便了用戶知道微博字數的限制,同時也限制了用戶的輸入字數。

    有一句話我們要牢記在心的是:凡是輸入,必有限制;凡是輸入,必須校驗。

    在接下來的文章中,我們將介紹如何實現輸入字符實時提示功能和本地存儲(localStorage)技術。

    1、jQuery字符統計插件
    現在,我們以新浪微博發送微博輸入框為例子,介紹使用jQuery實現實時提示用戶剩余字符數。

    新浪微博是限制140個中文(280個英文),當然還有各種其他字符空格的情況,在用戶輸入達到限制之前或達到了,好的用戶體驗應該提示用戶接近或達到了限制,當然我們可以通過使用不同顏色或加粗字體方式提示用戶。

    圖1新浪微博用戶輸入限制

    字符數統計插件會在輸入框后創建一個同級元素span,它用來顯示當前剩余字符數,當觸發輸入框的keyup、keydown和change事件時,實時修改span中剩余字符數,如果剩余字符數接近“warning”(接近零)修改CSS樣式提示用戶接近輸入限制。

    當剩余字符達到“warning”時,在span元素中添加相應的樣式類,當剩余字符等于或大于輸入限制時,添加相應的樣式類提示用戶已經超出字符數限制。

    我們通過字符數統計插件在頁面中動態地插入如下代碼:

    在默認情況下,字符限制是140個,當可輸入字符數少于等于25個提示用戶,當可輸入字符數少于等于0時,提示用戶字符數超出了限制。下面我們定義默認情況下條件對象:

    上面,我們定義了defaults對象,它包含allowed、warning、css、cssWarning和cssExceeded等屬性,通過修改defaults對象屬性,我們可以很方便修改字符統計插件。

  • Allowed:允許輸入的字符數。
  • Warning:提示用戶剩余字符數接近限零。
  • Css:添加到counter元素的CSS樣式類名。
  • cssWarning:警告提示樣式。
  • cssExceeded:超出字符限制提示樣式。
  • 接下來,我們在字符統計插件中定義方法calculate(),它計算當前剩余字符數,如果到達了警告范圍則在頁面中增加樣式類“warning”,當剩余字符數少于等于零時,在頁面中增加樣式“exceeded”。

    我們又定義方法getLength(),當輸入字符是中文時totLen加1,如果是英文字符或數字時totLen加0.5(默認允許輸入140個中文字符)。

    接下來,我們在控件中綁定keyup(),keydown()和change()事件方法,當頁面對象觸發keyup(),keydown()或change()事件方法時,調用calculate()方法計算當前剩余的字符數,并且添加相應的CSS樣式到頁面中。

    2、Web Storage
    現在,我們基本實現了jQuery字符數統計插件功能了,相信許多人都注意到,如果我們在發微博時,沒有發送出去的微博下次打開頁面,發送框依然保存著我們未發送的微博,即使關閉瀏覽器重新打開頁面,我們沒發送的信息依然存在。

    其實,要實現這一個功能方法是多種多樣的,例如我們可以使用:Cookies,Session等技術。

    隨著HTML5規范的制定,與此同時W3C制定了網絡存儲(Web Storage)的規范,它提供將數據存儲在客戶端中,直到Session過期(會話存儲)或超出本地容量(本地存儲),它比傳統的Cookies存儲功能更強大、更容易實現和容量更大(大部分瀏覽器支持5M的本地存儲)。

    會話存儲
    會話存儲:它將數據保存在會話中,一旦我們關閉瀏覽器選項卡時,會話中的數據將失效。

    本地存儲
    本地存儲:當數據需要持久地保存在客戶端中,這時我們可以使用本地存儲(Local Storage),它是以key/value 的形式來存儲數據的,如果關閉了頁面或瀏覽器后,重新打開頁面數據依然存在,它提供了數據的持久保存。一個簡單的應用是:記錄用戶訪問頁面的次數。

    圖2存儲空間的對比

    接下來,我們將介紹如何使用本地存儲保存用戶數據。

    由于,localStorage提供了setItem(),getItem(),removeItem(),key()和clear() 5個方法,和一個屬性length,具體定義如下:

    在現代瀏覽器中使用本地存儲是非常的簡單,我們只需在Javascript代碼中直接調用localStorage對象的方法或屬性就OK了。

    上面,我們通過調用localStorage的setItem()和getItem()方法實現數據的存儲和獲取,由于localStorage是以Key/Value形式存儲數據的,所以我們在存儲時需要提供Key/Value值,然后調用getItem()方法獲取存儲在Key中的值。

    由于本地存儲是以Key/Value的形式進行存儲的,那么我們可以很容易存儲字符串類型的數據,如果我們需要存儲對象類型,那么本地存儲就顯得捉襟見肘了。

    假設,我們把一個student對象存儲到localStorage中,具體代碼如下:

    圖3 localStorage存儲對象

    通過上面示例,我們注意到在Firebug的控制臺中輸出的并不是真正的student對象,而是student對象的信息而已。

    那么我們該如何把對象存儲到localStorage中呢?其實,我們可以把對象序列化為JSON數據進行存儲,最后通過反序列化把JSON數據轉換為對象。具體實現如下:

    上面示例中,在存儲student對象之前,我們使用JSON的stringify()方法序列化對象為JSON字符串,然后存儲到localStorage中;如果我們要獲取student對象,只需使用JSON的parse()方法反序列化字符串為對象。

    圖4 localStorage存儲對象

    上面,我們實現了student對象轉換為JSON格式字符串存儲到localStorage中,接下來,我們在前面的例子中添加localStorage功能,具體代碼如下:

    現在我們在自定義字符統計插件(jquery.charcount.js)中,添加方法storeWeibo(),首先我們判斷當前瀏覽器是否支持localStorage,主流的瀏覽器如:Chrome、Firefox、Opera、Safari以及IE 8都支持本地存儲(localStorage)和會話存儲(sessionStorage)。

    如果瀏覽器支持本地存儲,那么我們可以直接調用localStorage的setItem()方法,將textarea中的數據存儲起來;當我們再次打開頁面或瀏覽器,首先檢查localStorage是否存儲了相應的數據,如果有數據存儲,那么我們再次把數據取出顯示到textarea中。

    但由于一些用戶可能使用舊版的瀏覽器(如:IE6和IE7),考慮到兼容我們必須提供支持舊版瀏覽器的方案。

    我們知道舊版瀏覽器(如:IE6和IE7),它們支持Cookies的持久化存儲方式,所以我們使用Cookies實現getItem(), setItem()和removeItem()等方法。

    圖5 主流瀏覽器支持Web Storage

    現在,我們已經完成了字符統計插件jquery.charcount.js,由于時間的關系我們已經把發送框的界面設計好了,具體的HTML代碼如下:

    
    
     
    
    

    圖6 發送框界面設計

    接下來,我們在頁面代碼中引用jQuery庫和自定義字符統計插件jquery.charcount.js,具體代碼如下:

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

    文檔

    js仿微博實現統計字符和本地存儲功能_javascript技巧

    js仿微博實現統計字符和本地存儲功能_javascript技巧:隨著移動設備和Web應用的普及,為了更好的便于用戶的使用,對于網頁或應用程序的用戶體驗要求就越來越高,確實是這樣,作為用戶更喜歡選擇用戶體驗效果好的網站或應用程序,所以作為開發者的我們就需要開發出更人生化的應用程序了。 相信許多人有使用微博的經
    推薦度:
    標簽: 微博 功能 實現
    • 熱門焦點

    最新推薦

    猜你喜歡

    熱門推薦

    專題
    Top
    主站蜘蛛池模板: 99久久精品免费看国产| 欧美精品福利视频一区二区三区久久久精品 | 日韩欧美国产精品第一页不卡 | 亚洲AV永久无码精品网站在线观看| 亚洲一二成人精品区| 亚洲av无码乱码国产精品| 久久99精品国产麻豆蜜芽| 精品国产一区二区三区久久| 欧美肥屁VIDEOSSEX精品| 亚欧洲精品在线视频免费观看| 国产精品美女久久久久av爽| 99热这里只有精品在线| 无码精品A∨在线观看中文| 欧美精品亚洲精品日韩精品| 国产精品国产三级国产潘金莲| 九九在线精品视频专区| 2020国产精品永久在线| 精品欧洲av无码一区二区三区 | 亚洲国产精品无码久久久不卡| 久久免费99精品国产自在现线| 国产精品无码免费播放| 99久久免费只有精品国产| 精品九九久久国内精品| 99久久成人国产精品免费| 精品成在人线AV无码免费看| 老汉精品免费AV在线播放| 婷婷五月深深久久精品| 亚洲AV日韩精品久久久久久久| 无码乱码观看精品久久| 四虎成人精品| 亚洲а∨天堂久久精品| 伊人久久精品无码av一区| 中文字幕无码精品三级在线电影| 亚洲欧洲美洲无码精品VA| 亚洲国产精品一区二区成人片国内 | 久久se这里只有精品| 国产精品夜色视频一级区 | 日本精品夜色视频一区二区| 欧美激情精品久久久久久| 欧美精品亚洲精品日韩专区| 亚洲电影日韩精品|