<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    posts - 19, comments - 53, trackbacks - 0, articles - 283
      BlogJava :: 首頁(yè) :: 新隨筆 :: 聯(lián)系 :: 聚合  :: 管理
     

    在看這些經(jīng)驗(yàn)總結(jié)之前,我強(qiáng)烈的建議無(wú)線開發(fā)人員及產(chǎn)品人員熟讀WML的規(guī)范,手冊(cè)地址:

    http://www.w3cschool.cn/index-18.asp.htm

    根據(jù)我們長(zhǎng)時(shí)間開發(fā)的積累,我們?cè)谑褂眠^(guò)程中確實(shí)遇到的一些問(wèn)題,通過(guò)這些積累,使得我們找到移動(dòng)互聯(lián)網(wǎng)開發(fā)的一些規(guī)律:

    1、我可以在屏幕上顯示幾行信息?

    事實(shí)上,對(duì)顯示多少行沒(méi)有特別限制,只要不超過(guò)面板的最大尺寸就行(隨設(shè)備的不同而不同)。然而,為了避免太多滾屏,每屏(即卡片)5 7 行最佳。當(dāng)然屏不要太多,3-4屏為極限,因?yàn)榭紤]到目前市場(chǎng)上很多的山寨手機(jī)對(duì)WML頁(yè)面大小支持的不好。

    2、我們應(yīng)該權(quán)衡GET/POST哪些問(wèn)題?

    在實(shí)際開發(fā)中,確實(shí)遇到一些電話不支持使用 POST 方法發(fā)送表單數(shù)據(jù),這種情況,我們確實(shí)沒(méi)有辦法去做兼容了。因?yàn)樵趯?shí)際開發(fā)中,有些數(shù)據(jù)我們必須要為用戶保密,例如用戶名和密碼必須通過(guò) POST 方法發(fā)送。

    WAP 網(wǎng)關(guān)上,如果日志功能被激活并且請(qǐng)求已被記錄,管理員就有能看到用戶名和密碼。如果網(wǎng)關(guān)是由 ISP 或其它第三方提供的,這個(gè)問(wèn)題就會(huì)特別突出。

    即使一個(gè)安全的連接也不能完全消除安全隱患。那些發(fā)送到 WAP 網(wǎng)關(guān)的數(shù)據(jù)使用 WTLSWireless Transport Layer Security)加密,它使用與標(biāo)準(zhǔn) TLS 相同的算法。然而,發(fā)送到 WAP 網(wǎng)關(guān)的數(shù)據(jù)是二進(jìn)制的編碼格式(對(duì) WAP),所以這些加密后的數(shù)據(jù)必須用 TLS 解密和再加密以適用于因特網(wǎng)。經(jīng)過(guò)一段時(shí)間以后,敏感數(shù)據(jù)在 WAP 網(wǎng)關(guān)上以明文的形式出現(xiàn)。黑客則會(huì)在適當(dāng)?shù)臅r(shí)刻,將內(nèi)存中的信息轉(zhuǎn)儲(chǔ)出來(lái),進(jìn)而成功地訪問(wèn)這些敏感數(shù)據(jù)。

    按照注釋,解決該問(wèn)題的一種辦法是在自己公司(而不是在 ISP)設(shè)一個(gè) WAP 網(wǎng)關(guān)。在這種情況下,一個(gè)可信的人可以操作網(wǎng)關(guān),并且可以關(guān)閉日志功能。

    您也可以用 WMLScript 來(lái)編寫自定義的加密算法,以對(duì)客戶端的用戶名和密碼進(jìn)行加密。這只有在使用簡(jiǎn)單的算法時(shí)才有可能實(shí)現(xiàn);在支持 DES 類的算法上,WMLScript 不夠強(qiáng)大。雖然有這么多的顧慮。

    我們?cè)趯?shí)際的開發(fā)中選擇的依然首選的是GET。我們建議使用GET方式提交參數(shù),是考慮到URL可移植、保證參數(shù)完整,但是同時(shí)我們?yōu)榱吮C堋⑾揲L(zhǎng)度可以在合適的地方(用戶保密數(shù)據(jù)、參數(shù)可能出現(xiàn)過(guò)長(zhǎng))應(yīng)用POST

    3、我怎樣保持 Session

    我們?cè)僮鋈魏我粋€(gè)模塊設(shè)計(jì)的時(shí)候都不要假設(shè)手機(jī)終端都支持cookie(雖然部分手機(jī)支持cookie,但不能保證用戶都開啟cookie)。這樣,當(dāng)用戶在您的站點(diǎn)的不同頁(yè)面之間穿梭時(shí),為了在服務(wù)器端保留關(guān)于客戶端的信息,在向服務(wù)器發(fā)送每個(gè)請(qǐng)求的同時(shí),一個(gè) Session ID 必須被當(dāng)作參數(shù)傳遞。Session ID 的參數(shù)名根據(jù) Servlet 引擎的不同而不同。

    有時(shí),缺省的 Session ID 長(zhǎng)度很大幅度地增加了每個(gè)請(qǐng)求的長(zhǎng)度。結(jié)果導(dǎo)致客戶端或 WAP 網(wǎng)關(guān)可能將此請(qǐng)求看作一個(gè)無(wú)效的 URL 而拒絕。這樣有必要縮短 Session ID 的長(zhǎng)度。可自定義一些所短sessionID長(zhǎng)度的方案。

    4Select 框參數(shù)的提交?

    因?yàn)?/span>WAP瀏覽器的簡(jiǎn)陋、多而雜,在不同的瀏覽器里,select提交被截獲的參數(shù)值也是不同的,如在select中,你選中了1/2/3提交后,截取的值,可能是1,2,3,也可能是123

    這點(diǎn)跟WEB上有些許差異,請(qǐng)大家多注意

    5、參數(shù)簡(jiǎn)單化?

    在開發(fā)過(guò)程中,我們經(jīng)常是為了頁(yè)面參數(shù)提交的簡(jiǎn)單,即為了減少參數(shù)的提交個(gè)數(shù),我們喜歡在WML頁(yè)面對(duì)一些參數(shù)進(jìn)行拼裝。如下:

    <postfield name="content" value="$(bwBall)~$(swBall)~$(gwBall)"/>,實(shí)際操作中,我們應(yīng)該避免這樣的參數(shù)拼裝,僅管在WAP1.1之后確實(shí)支持一些分割符的分隔

    6、編碼問(wèn)題同樣是個(gè)詬病?

    無(wú)論我們?cè)?/span>J2EE/J2SE開發(fā)過(guò)程中,都會(huì)遇到編碼的問(wèn)題,不同的是WML中遇到的編碼問(wèn)題大多數(shù)并不是我們服務(wù)端導(dǎo)致的,手機(jī)廠商對(duì)編碼沒(méi)有固定的設(shè)置,很多用戶不會(huì)去關(guān)心手機(jī)的編碼,在參數(shù)提交時(shí)如果帶有中文參數(shù),在參數(shù)接收時(shí),就需要對(duì)參數(shù)進(jìn)行處理,因?yàn)榭蛻舳颂峤贿^(guò)來(lái)的可以是ASCII

    7、“內(nèi)部服務(wù)器錯(cuò)誤”?

    如果做WML開發(fā)你沒(méi)遇到過(guò)這類錯(cuò)誤,那你絕對(duì)不是一個(gè)稱職的開發(fā)。在手機(jī)中報(bào)這類錯(cuò)誤,基本上都屬于功能機(jī),對(duì)應(yīng)的 response code 500

    8WML頁(yè)面對(duì)圖片的支持度?

    WML頁(yè)面里,圖片是不被建議的,如果非要使用的話,請(qǐng)注意圖片不要多于5張,圖片最好要經(jīng)過(guò)處理,越小越好。另外圖片的格式最好是PNG,如果有條件的話PNGGIFJPG最好都備上。

    9、轉(zhuǎn)義字符的使用?

    WML中,跟HDML一樣,多個(gè)連續(xù)的空格只顯示一個(gè)空格;在WML中,一定要注意使用轉(zhuǎn)義字符,如:

    <      -----      &lt;

    >      -----      &gt;

          -----      &apos;

          -----      &quot;

    &      -----      &amp;

    $      -----      $$

    空格    -----      &nbsp;

    -      -----      &shy;

    特別是在URL參數(shù)傳遞過(guò)程中,源碼中&必須寫成&amp;

    10、一個(gè)標(biāo)準(zhǔn)的crad

    cardWML的單元,由此,我們可以知道一個(gè)WML頁(yè)面可以有多個(gè)card(靜態(tài)文字預(yù)加載推薦使用)。

    如下是一個(gè)WML最基本的元素:

    <?xml version="1.0" encoding="UTF-8"?>

    <!DOCTYPE wml PUBLIC "-//WAPFORUM//DTD WML 1.1//EN"

    "http://www.wapforum.org/DTD/wml_1.1.xml">

    <wml>

        <head>

           <meta forua="true" http-equiv="Cache-Control" content="max-age=0"/>

           <meta forua="true" http-equiv="Cache-Control" content="no-cache"/>

        </head>

        <card id="index" title="愛(ài)彩票">

           <p>內(nèi)容</p>

        </card>

    </wml>

    11、關(guān)于WML頁(yè)面的表單參數(shù)提交<anchor>

    有一個(gè)標(biāo)準(zhǔn)的表單提交的實(shí)例:

    源碼:

    <img src="http://wap.baidu.com/logo.gif" alt="Baidu"/>

    <input name="word" size="4"/><br/>

    <anchor>

    搜网页

    <go method="get">

    <postfield name="word" value="$(word)"/>

    <postfield name="tn" value="wisewml"/>

    <postfield name="rn" value="5"/>

    <postfield name="ie" value="unicode"/>

    <postfield name="cl" value="2"/>

    <postfield name="vit" value="uni"/>

    <postfield name="from" value="578b_w1"/>

    </go>

    </anchor>|

    <anchor>

    进贴吧

    <go method="get">

    <postfield name="kw" value="$(word)"/>

    <postfield name="from" value="578b_w2"/>

    <postfield name="inb" value="1"/>

    </go>

    </anchor>

    在這里有個(gè)很好的體現(xiàn),提交文字所在的位置,這個(gè)問(wèn)題,針對(duì)小部分手機(jī)會(huì)有差異(會(huì)產(chǎn)生頁(yè)面解析失敗的情況)。我們最好的習(xí)慣是將提交文字寫在<anchor><go href=”” method=”get”>之間。

    12WAP如何保證表現(xiàn)層可維護(hù)性?

    這可能是最可怕的事情了,由于WAP業(yè)務(wù)的特殊性,合作推廣相對(duì)WAP較頻繁,如果系統(tǒng)開發(fā)人員沒(méi)有一個(gè)好的思想,好的編程習(xí)慣,喜歡將代碼粘來(lái)粘去(特別是頁(yè)面代碼),時(shí)間長(zhǎng)了,這將給系統(tǒng)帶來(lái)毀滅性的結(jié)局。

    13、低端機(jī)對(duì)WML標(biāo)簽的支持?

    移動(dòng)終端,大家要清楚的就是這是個(gè)以簡(jiǎn)潔為主的地盤,無(wú)論從業(yè)務(wù)上還是從技術(shù)上,WEB人員都喜歡將WEB的一套模式照搬到WAP中來(lái),如果你真的那樣做的話,我要告訴你,你會(huì)死的很慘,很多WEB上的業(yè)務(wù)是跟WAP的用戶群的截然不同的,那么從技術(shù)上來(lái)說(shuō),也是不能通用的。

    特別是低端機(jī),很多好的效果,好的模式都是不支持的,所以說(shuō)這是個(gè)簡(jiǎn)單的平臺(tái)。

    舉例:在html頁(yè)面我們會(huì)用各種顏色,各種字體,想方設(shè)法的讓展示更炫,WAP行不通的,如下標(biāo)簽就不能通過(guò)---一般手機(jī)會(huì)報(bào):內(nèi)容格式錯(cuò)誤

    <b>粗體</b>                         ---------低端機(jī)不支持

    <i>斜體</i>                         ---------低端機(jī)不支持

    <img alt="pic" src="" />        ---------在使用img標(biāo)簽時(shí),alt標(biāo)簽必填

    如果你想你的應(yīng)用以展現(xiàn)為主,那么有些豐富頁(yè)面的標(biāo)簽?zāi)憧梢試L試一下,如果你的平臺(tái)是電子商務(wù),那么我奉勸產(chǎn)品及開發(fā)人員,這些標(biāo)簽?zāi)氵€是離它們遠(yuǎn)點(diǎn)。

    14、如何去除WAP頁(yè)面輸入框緩存?

    WAP頁(yè)面輸入框的緩存是讓用戶感到很頭疼的東西,很多時(shí)候我們第二次訪問(wèn)同一個(gè)輸入框是想重新輸入值的,結(jié)果頁(yè)面響應(yīng)給我們的框里卻遺留了上一次輸入的值。還需要手動(dòng)的刪除上一次數(shù)據(jù)再重新輸入數(shù)據(jù)。從這個(gè)操作上來(lái)說(shuō)讓用戶體驗(yàn)很不流暢,或者說(shuō)給用戶使用帶來(lái)了阻力。

        為了規(guī)避這種輸入框緩存,我們可以利用隨機(jī)數(shù),如參數(shù)param我們可以寫成 param + random

    15、部分手機(jī)對(duì)下拉框的支持度?

    在開發(fā)過(guò)程中,我們遇到一些奇怪的問(wèn)題,在WAP1.0的手機(jī)里,有些低端的手機(jī)不支持下拉框的定號(hào)選擇。如:

    <select name='params'>

               <option value='1'>value1</option>

               <option value='3'>value3</option>

               <option value='5'>value5</option>

               <option value='7'>value7</option>

               <option value='9'>value9</option>

           </select><br/>

    原本我們是希望用戶選擇的是3,則我們接受到的也是3,可是不幸的是,我們接收到的是1,通過(guò)多次的查日志驗(yàn)證,確實(shí)有這樣的情況存在,即:該類型的手機(jī)下拉框全部是按照升序的值進(jìn)行傳遞的。那么在我們這個(gè)事例的值就是,0,1,2,3,4而不是1,3,5,7,9。

    16、部分手機(jī)對(duì)復(fù)選框的支持?

    這個(gè)特性需要產(chǎn)品設(shè)計(jì)人員注意了,在產(chǎn)品設(shè)計(jì)的時(shí)候盡量避免這些復(fù)選的出現(xiàn)。因?yàn)樵诔霈F(xiàn)復(fù)選框的時(shí)候,部分手機(jī)是會(huì)默認(rèn)全選的(如MOTO手機(jī))。

    主站蜘蛛池模板: 亚洲成在人线中文字幕| 亚洲精品线路一在线观看 | 亚洲va在线va天堂va四虎| 亚洲一区二区三区香蕉| 亚洲综合伊人久久大杳蕉| 亚洲一区二区三区香蕉| 亚洲日韩aⅴ在线视频| 亚洲AV无码一区二区乱子伦| 国产成人亚洲综合无码精品| 亚洲视频中文字幕| 亚洲第一香蕉视频| 国产成人精品日本亚洲11| 亚洲欧美日本韩国| 亚洲AV无码国产一区二区三区 | 久久亚洲国产中v天仙www | 日本久久久免费高清| 国产精品免费视频播放器| 亚洲VA综合VA国产产VA中| 亚洲日本韩国在线| 亚洲不卡中文字幕无码| 亚洲精品电影天堂网| 在线a亚洲老鸭窝天堂av高清| 亚洲精品国产suv一区88| 免费毛片毛片网址| 在线观看片免费人成视频播放 | 亚洲AV日韩AV永久无码色欲| 高h视频在线免费观看| 本免费AV无码专区一区| 久久99精品免费视频| 人妻视频一区二区三区免费| 女人被免费视频网站| 亚洲午夜福利精品无码| 亚洲第一成年男人的天堂| 亚洲精品第一综合99久久| 黄色免费在线网址| 青青草原1769久久免费播放| 91频在线观看免费大全| 免费一级肉体全黄毛片| 久久久久久亚洲精品| 亚洲性色精品一区二区在线| 人人公开免费超级碰碰碰视频|