開發Wap中的隨筆

來源:互聯網
上載者:User

Asp開發 聯通CDMA

以下是在開發wap中的隨筆,其中一些對於“老鳥”來說,談不上什麼,希望對初學者有所協助,大家有什麼小技巧,歡迎頂上來。共同學習、共同進步 ^-^
1、iis配置Wap環境
在作為wap網站的屬性-->Http頭-->MIME映射中添加新的檔案類型,具體如下:
關聯檔案名稱 內容類型
wml text/vnd.wap.wml
wmlc application/vnd.wap.wamlc
wmls text/vnd.wap.wmlscript
wmlsc application/vnd.wap.wmlscript
wbmp image/vnd.wap.wbmp
編寫一個wml檔案或者使用asp編寫一個動態網頁
如果使用asp編寫,在源碼的開始添加
<%@LANGUAGE="VBSCRIPT" CODEPAGE="65001"%>
<%Response.ContentType = "text/vnd.wap.wml; charset=utf-8"%>
編碼採用utf-8
就可以使用模擬器進行瀏覽了。
2、wap中的編碼比較嚴格,標籤區分大小寫。標籤一定要對應。初學者經常犯這樣的錯誤
3、說到標籤對應就涉及到這樣一個問題。當在一個表中查詢記錄的時候,在asp中沒有記錄就輸出“沒有記錄提示”並response.end。但是在wap中不行,因為這樣就不會輸出</card></wml>等閉合標籤。
我採用的方法是。得到記錄集後



if rs.eof then
Wrong="暫時沒有記錄。。。"
else
'正常的進行頁面顯示。。。。。
end if
respong.write Wrong

</p>
</card>
</wml>
這樣可以避免標籤不閉合。
4、圖片下載中首先一定要做到
a、圖片格式要正確:有的手機支援png 有的支援gif、bmp、jpg 。(聯通CDMA的大部分都支援png)
b、圖片的路徑要正確:絕對路徑 比如http://****/PicDown/aa.png
c、圖片的大小要適當:預覽的圖片不能超過10kb,供下載的圖片不能超過30kb。(這個我也不知道有沒有標準,這是我在實際測試中得到的資料),下載有些手機支援圖片或者鈴聲可能還要大 <50kb,但是為了照顧大多數手機所以,建議<30kb。
d、圖片的大小一定要和圖片的名稱對應,也就是說 aa.png是多麼大,在其size中就寫多麼大,這兩個是對應的。
e、有的手機在手機記憶體儲圖片達到一定數量時候,就會提示“下載個數過多”等類似提示,有的手機有預覽-->儲存(如:MOTO)有的沒有,下載後直接儲存到手機中(LG8180)。
f、判斷使用者下載是否成功,可以在指定的檔案中獲得Status,if Status=‘ok’ 則表明下載成功,進行提示下載成功、下載次數+1等操作,否則,提示下載失敗。
5、wap中的分頁
分頁和web中是一樣的,只是有些功能比較簡化了,下面是常用的分頁,沒有寫成函數是方便大家修改。

在開啟記錄集後寫,如下代碼:

<%
filepath=request.servervariables("path_info")%>
<%page=1
page=request("page")
rs.PageSize = 8 '每頁的記錄的條數
if Not IsEmpty(trim(Request("Page"))) then
Page = CInt(Request("Page"))
if Page > rs.PageCount then
rs.AbsolutePage = rs.PageCount
elseif Page <= 0 then
Page = 1
else
rs.AbsolutePage = Page
end if
End if
%>

然後再想顯示分頁的地方,一般是在記錄集迴圈輸出完畢的後面寫:

<%if rs.pagecount<>1 and rs.pagecount<>0 then%>
<br/>
<%if page>rs.pagecount then%>
<a title="確定" href="<%=filepath%>?Page=<% =page -1 %>">上一頁</a>
<%else%>
<%if page<>1 then %>
<a title="確定" href="<%=filepath%>?Page=<% =page -1 %>">上一頁</a><br/>
<% end if %>
<a title="確定" href="<%=filepath%>?Page=<% = page + 1%>">下一頁</a>
<%end if %>
<%end if
response.Write "第"&page&"頁 共"&rs.pagecount&"頁"
%>

注意顯示的時候首先顯示下一頁,然後再顯示上一頁這和web上的習慣不太一樣。

另外,如果這頁的內容是顯示是通過上頁傳送來的參數,作為條件的,則在 類似
<a title="確定" href="<%=filepath%>?Page=<% = page + 1%>">下一頁</a>
的地方都要加上該參數,否則進行下一頁串連的時候就會把參數丟掉。
例如:從上頁使用者選擇的新聞的種類,來顯示新聞。在List.asp頁面首先寫,NewType=request.form("NewType")得到使用者選擇的新聞的類型。
然後SQL="Select ..........where NewType='"&NewType&"'" 。完成記錄集合的準備工作。注意:在進行下頁面的時候要寫成
<a title="確定" href="<%=filepath%>?Page=<% =page -1 %>&NewType=<%=NewType%>">上一頁</a><br/>,
這樣的形式,有多少條件後面跟多少條件。
但是這樣就產生問題了,即時這樣寫NewType=request.form("NewType")也得不到NewType的值。所以在頁首剛開始的地方應該寫成NewType=request("NewType")。就可以實現把參數帶到下一頁的串連中了。

wap中上一條、下一條的問題。

在開發中,新聞、笑話、下載等業務為使用者提供方便基本都需要在一條記錄完成後,再提供下一條記錄的操作,下面是簡要的對下一條記錄實現方法的描述。

比如顯示新聞是國際新聞的記錄,list.asp來進行顯示,通過sql語句select * from NewsInfo where type='國際' ,來得到合格記錄集,使用者在瀏覽過程中,目前記錄的id=10,下一條記錄的id是idnext=10+1=11,上一條記錄的id是idpre=10-1=9,然後<a href="list.asp?id='"&IdNext&"'">上一條</a>,這樣的做法是欠缺的,僅僅適用與id是連續的,也就是說所有國際新聞的id是連續的,如果國際新聞和國內新聞在表中是穿插寫入的,那麼你的id-1很可能是國內新聞,條件限制type='國際' 就不起作用了。

正確且簡練的做法應該是這樣的(可能大家還有更好的做法):

當前的id是IdNow,表NewsInfo是按照id自增的。
獲得idnext=select top 1 from NewsInfo where type='國際' and id>'"&IdNow&"'
獲得Idpre=select top 1 from NewsInfo where type='國際' and id<'"&IdNow&"' order by id desc

剩下的問題,就不用說了吧,注意,先顯示下一條,然後顯示上一條,這樣才方便使用者。

wap中新聞等圖片和文字混排

Wap開發中,圖片和文字混排,可以採用ubb編碼,原理就是自己定義一共特殊的格式,採用mid和replace函數進行轉換。比如定義[img][/img],表示圖片的開始和結束。
但是要注意,web和wap中的區分。進行以下替換 string1all = Replace(string1all,"string1all = Replace(string1all,"" />"," "" alt=""""/></p><p>")

會使得圖片置中顯示。

新聞小說的分頁

在wap中過長的新聞和小說,會給大家帶來很大的不方便。所以要求進行分頁顯示,比如按照每頁顯示300字來舉例子。

pageWordNum=300 ' 每頁顯示的字數,這裡300可以是變數
StartWord = 1
Length=len(Content) '要顯示內容的總的長度
PageAll=(Length+PageWordNum-1)\PageWordNum '該篇新聞總共可分的總頁數

i=request.QueryString("i") '第幾頁的標記
if isnull(i) or i="" then '如果是新聞的剛開始則預設i=0
i=0
end if
Content = mid(Content,StartWord+i*PageWordNum,PageWordNum) '利用mid函數進行新聞內容的截取(mid函數的含義:從字串中返回指定數目的字元)




<%
'開始進行分頁操作
if 0<=i<PageAll then
if cint(i)<cint(PageAll)-1 then%>
<a href="ListFengshuiInfo.asp?i=<%=i+1%>">下一頁</a><br/>
<%end if
if cint(i)>0 then%>
<a href="ListFengshuiInfo.asp?i=<%=i-1%>">上一頁</a><br/>
<%end if
end if
%>

結束。

注意:1、 <a href="ListFengshuiInfo.asp?i=<%=i+1%>">下一頁</a><br/>中ListFengshuiInfo.asp?i=<%=i+1%>可以按照你的實際環境的需要添加變數。
2、Mid函數的解釋說明:
從字串中返回指定數目的字元。
Mid(string, start[, length])
參數
string
字串運算式,從中返回字元。如果 string 包含 Null,則返回 Null。
Start
string 中被提取的字元部分的開始位置。如果 start 超過了 string 中字元的數目,Mid 將返回零長度字串 ("")。
Length
要返回的字元數。如果省略或 length 超過文本的字元數(包括 start 處的字元),將返回字串中從 start 到字串結束的所有字元。



相關文章

Beyond APAC's No.1 Cloud

19.6% IaaS Market Share in Asia Pacific - Gartner IT Service report, 2018

Learn more >

Apsara Conference 2019

The Rise of Data Intelligence, September 25th - 27th, Hangzhou, China

Learn more >

Alibaba Cloud Free Trial

Learn and experience the power of Alibaba Cloud with a free trial worth $300-1200 USD

Learn more >

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。