999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

網絡SMS應用中有關有效數據長度控制的算法分析

2011-09-21 07:02:14棠,唐
成都工業學院學報 2011年3期
關鍵詞:文本

熊 棠,唐 勇

(武警四川總隊 通信網絡管理中心,成都 610015)

網絡SMS應用中有關有效數據長度控制的算法分析

熊 棠,唐 勇

(武警四川總隊 通信網絡管理中心,成都 610015)

針對基于網絡短信息服務的有效數據長度控制的問題,提出了“逐字修正”和“超閾回滾”2種實現算法,并設計了2種算法的實現腳本。針對2種算法流程的不同,結合實際使用中數據的特點,比較了2種算法的優缺點;并針對可能出現的錯誤,提出了優化后的算法。借助瀏覽器插件,設計實驗進行了定量分析,實驗結果證實了算法分析階段的預測結果。

文本長度限制;算法;腳本效率

隨著網絡技術的快速發展,基于網絡的短信息服務(Short Message Service,SMS)由于其平臺的開放性、便捷性和可移動性,逐漸成為快速廣播應用的首選平臺。SMS通常對信息長度有一定的限制,例如國內主要從事GMS網絡運營的ISP將SMS服務中單條SMS信息內容限制為70個字(140字節)。即使使用GSM短信分割協或采用CDMA等支持更長信息服務的基礎網絡,為了減輕網絡壓力,也需要對數據長度作出限制,因此,有必要在輸入端瀏覽器限制文本的輸入。目前常用的限制文本長度的腳本通常存在中文字符兼容性不好、瀏覽器兼容性差等問題。據此,提出2種算法,可以準確完成英文字母、數字、符號及中文字符混用情況下的文本長度控制。采用跨瀏覽器的Javascript腳本實現算法,并采用一種直觀準確的檢測方法,測試腳本的效率;使該腳本的運行不受文本長度變化的影響,并能符合用戶通常的使用習慣。

1 算法分析

用戶的需求主要有3種:1)用戶在客戶端(Internet Explorer 6.0瀏覽器及同系列更高版本、Firefox 3.5瀏覽器及同系列更高版本,后續分析及實現均以此兩系列瀏覽器為基礎[1]。)輸入文本,客戶端顯示還可輸入的文字數量,隨操作自動更新。2)當文本長度達到預設定值的時候,禁止輸入,文本鎖定。3)充分考慮用戶操作習慣。腳本應在逐字輸入、外部粘貼等操作下均能正確執行。針對以上3種需求,算法分析如下:

1)觸發動作

考慮需求3),腳本應在對象文本區域(Textarea)執行按鍵、點擊事件時均激活。即在 onclick、onmousedown、onkeyup事件時激活腳本。同時,在表單提交之前,對所有表單對象進行格式化檢查時再執行一次腳本。

2)文本長度檢查

在Javascript腳本(以下簡稱JS)中,字符串對象有length屬性,表示了字符串的長度。但是JS中,將單字節文本與雙字節文本做相同處理,例如“測試”這樣的2個漢字的字符串,在JS中的length屬性為2,這與實際數據傳輸與存儲是需要占用4個字節的情況不符。因此,需要構建1個函數(function),得到1個可能包含單字節字符及雙字節字符的字符串的準確字節數。

字符串對象存在charCodeAt()方法,返回在指定位置字符的萬國碼(以下簡稱Unicode)編碼[2]。Unicode及網頁常用的GB2312、GB18038、UTF-8等字符集通常都向下兼容ASCII碼,因此,使用charCodeAt()方法返回值大于007F(16進制)時,表明字符串對應的該位置字符要占用2個字節,反之占用1個字節[3]。

3)余字提示

得到當前字符串所占字節長度后,以設定值(字節數)與當前值之差除2,得到還可以輸入的文字個數,并將結果作為頁面元素顯示出來。

4)長度控制

長度檢查隨輸入激活,當腳本檢查到長度超過設定值時,應將長度鎖定在最長狀態。

按照以上需求,可以有2種方式實現長度控制。

2 算法實現

2.1 算法一:逐字修正(Always Correct)

該算法的流程是:檢查當前文本長度,如果超過設定值,將文本域中的字符串取不大于設定值長度的子字符串,并將子字符串值賦給文本域對象。在一個循環過程中將當前字符串對象逐字符添加到1個臨時字符串后面,然后檢查臨時字符串所占的字節長度;當長度超過設定值時,跳出循環,并得到當前位置減1為最長字符串。將結果賦值給文本域對象并鎖定。該算法適應性強,但代碼繁復,運算量大。

2.2 算法二:超閾回滾(Over-threshold Rollback)

該算法的流程是:檢查當前文本長度,如果未超過設定值,將文本賦值給一個全局性的對象;如果超過設定值,從全局性對象中取值賦給文本域對象。全局性對象可以為全局變量,也可以為表單對象。此處以全局變量為例加以說明。聲明全局變量TempStr;對當前字符串對象進行長度檢查,如果未超過設定值,將字符串對象值賦給全局變量TempStr;如果超過設定值,則取TempStr的值,并將其賦給文本域對象并鎖定。該算法程序簡潔,運算量低,但實際使用中存在局限性。下面將說明并優化。

3 腳本實現

使用Javacript腳本實現上述算法的實現。按照上述分析,可以將腳本分為3個部分,分別對應長度檢查、余字顯示和長度控制。

聲明函數GetStrLen(Str)作為實現長度檢查的腳本,其中Str為待檢查的字符串。

聲明函數LastWords(tagID,NowLength MaxLen)作為實現余字顯示的腳本,其中tagID為頁面上顯示剩余字數的容器ID,NowLength為當前字符串所占字節長度,MaxLen為設定的最大字節數。

聲明函數CHGLeftWords(obj,tagID,MaxLen)作為頁面對象事件激活動作,并在此函數中處理長度控制。其中obj為頁面表單中的文本域對象,tagID為頁面上顯示剩余字數的容器ID,MaxLen為設定的最大字節數。

1)算法一的實現:

2)算法二的實現:

算法二比算法一簡潔、運算量少,運算量不會由于字符串長度的變化而增加,適合于較長文本的控制;但是當用戶從瀏覽器外部采用復制粘貼方式提交數據時,如果文本超過長度,因為全局變量此時處于初始狀態,會將文本域賦值為空。

采用算法一與算法二相結合的方式:在一般情況中用算法二處理,簡潔高效;當算法二失效的情況下,采用算法一處理。腳本實現如下:

4 兩種算法運行效率定量分析

在實際使用中,算法二(特別是適應性改造后的算法二)與算法一相比,哪個效率更高呢?這就需要設計一個實驗,以定量分析的方式得出結論。

前端腳本運算效率涉及很多方面,對于用戶體驗來講,最直接的就是運行時間;對于上述2種算法的效率比較,可以簡化為完成同樣處理工作的時長對比。

為了排除客戶端系統資源分配對于測試結果的影響,需要使用相對時間長度來進行比較;同時為了排除客戶端系統中斷的影響,需要在同樣輸入條件下進行多次測試來降低誤差[4]。

在Firefox 3.6下,使用開源插件Firebug 1.6.0測試腳本運行時間[5]。測試操作方法為:

1)測試環境為 Windows xp+SP3、Firefox 3.6。

2)每次測試前清空瀏覽器緩存,刷新頁面。

3)測試數據分3組,分別為140字節、255字節和1 024字節,輸入方式為手工輸入。

4)每組數據在Firefox 3.6下分別測試5次,記錄下讀數。

表1為測試記錄:

表1 不同字節文本條件下2種算法的耗費時間對比單位:ms

由表1分析可知:

1)算法一在同等輸入條件較下較算法二效率低;

2)算法一在需要處理的數據長度增加時,運行時間急劇增加;算法二受數據長度影響很小。

實驗結果與理論分析結果一致。

通過上述分析及測試可以看出,采用不同的算法對腳本的執行效率有很大的影響。采用低效率的算法,最終結果可能會嚴重影響用戶的使用體驗,進而造成用戶對該系統的抵觸。

[1]FLANAGAN D.JavaScript權威指南[M].李強,譯.5版.北京:機械工業出版社,2007.

[2]CROCKFORD D.JavaScript語言精粹[M].趙澤,譯.北京:電子工業出版社,2009.

[3]EVERSON M,MCGOWAN R,WHISTLER K,et al.Roadmap to the BMP[DB/OL].(2011-06-23)[2011-03-12].http://www.unicode.org/roadmaps/bmp/.

[4]KEITH J.JavaScript DOM編程藝術[M].楊濤,譯.北京:人民郵電出版社,2006.

[5]VOLCANO.初識 Firebug[J].程序員,2007(3):120-121.

Algorithm of Data Length Control in Web SMS Applications

XIONG Tang,TANG Yong
(Communication Management Center,Sichuan Brigade of Armed Police,Chengdu 610015,China)

This paper focuses on the effective data length control of network-based short message service.Two algorithms of“Always Correct”and“Over-threshold Rollback”are proposed.The advantages and disadvantages of these two algorithms are compared in combination with their individual arithmetic and features in use.An optimized algorithm is considered according to the possible errors in applications.The experiments for quantitative analysis are designed and the results verify the effectiveness of proposed algorithm.

data length control;algorithm;efficiency

TP301.6

A

1008-5440(2011)03-0018-05

2011-04-20

熊棠(1982-),男(漢族),重慶人,助理工程師,學士,研究方向:網站構架與應用。

唐勇(1977-),男(漢族),四川安岳人,工程師,學士,研究方向:網絡優化與網絡管理。

猜你喜歡
文本
文本聯讀學概括 細致觀察促寫作
重點:論述類文本閱讀
重點:實用類文本閱讀
初中群文閱讀的文本選擇及組織
甘肅教育(2020年8期)2020-06-11 06:10:02
作為“文本鏈”的元電影
藝術評論(2020年3期)2020-02-06 06:29:22
在808DA上文本顯示的改善
“文化傳承與理解”離不開對具體文本的解讀與把握
基于doc2vec和TF-IDF的相似文本識別
電子制作(2018年18期)2018-11-14 01:48:06
文本之中·文本之外·文本之上——童話故事《坐井觀天》的教學隱喻
從背景出發還是從文本出發
語文知識(2015年11期)2015-02-28 22:01:59
主站蜘蛛池模板: 欧美一级在线| 色婷婷综合激情视频免费看| 亚洲AV一二三区无码AV蜜桃| 国产一区二区三区免费观看 | 日韩在线观看网站| 国产主播一区二区三区| 美女毛片在线| 2020亚洲精品无码| 亚洲成人一区二区| 国产激爽大片高清在线观看| 久草国产在线观看| 青青草国产免费国产| 国产一区二区福利| 99免费视频观看| 国产成本人片免费a∨短片| 国产小视频a在线观看| 精品福利网| 高清色本在线www| 日本一区二区三区精品国产| 中文成人在线| 亚洲日韩图片专区第1页| 99精品免费欧美成人小视频 | 久久一级电影| 免费一级成人毛片| 干中文字幕| 另类专区亚洲| 99久久国产自偷自偷免费一区| 国产噜噜噜视频在线观看| 99精品热视频这里只有精品7| 97国产精品视频人人做人人爱| 亚瑟天堂久久一区二区影院| 欧美视频免费一区二区三区| 日本一区高清| 色欲国产一区二区日韩欧美| 日韩福利在线视频| 精品亚洲国产成人AV| 97在线免费视频| 亚洲激情99| 91福利在线观看视频| 3D动漫精品啪啪一区二区下载| 亚洲日本在线免费观看| 福利视频久久| 国内丰满少妇猛烈精品播| 国产精品美女在线| 女人18毛片一级毛片在线 | 国产精品永久免费嫩草研究院| 中文字幕亚洲第一| 澳门av无码| 欧美一区福利| 中文字幕亚洲另类天堂| 人妻夜夜爽天天爽| 99久久精品国产麻豆婷婷| 亚洲码一区二区三区| 亚洲综合色婷婷| 久久久受www免费人成| 九九线精品视频在线观看| 欧美日本在线播放| 亚洲av成人无码网站在线观看| 日韩在线观看网站| 99精品在线视频观看| 国产无码在线调教| 久久精品66| 亚洲欧美日韩另类在线一| 9啪在线视频| 日本免费福利视频| 九九热在线视频| 黑色丝袜高跟国产在线91| 国产真实自在自线免费精品| 色综合久久88| 亚洲中文字幕在线观看| 91偷拍一区| 亚洲激情区| 亚洲成a∧人片在线观看无码| 一级毛片在线免费视频| 永久免费无码成人网站| 亚洲人精品亚洲人成在线| 亚洲人成网站18禁动漫无码| 色哟哟国产精品| 久久五月天综合| 扒开粉嫩的小缝隙喷白浆视频| 亚洲无码四虎黄色网站| 免费人成视网站在线不卡|