分享
 
 
 

开发Wap中的随笔

王朝other·作者佚名  2006-11-24
窄屏简体版  字體: |||超大  

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 %>&amp;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函数进行转换。比如定义

"," "" 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 到字符串结束的所有字符。

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
2023年上半年GDP全球前十五强
 百态   2023-10-24
美众议院议长启动对拜登的弹劾调查
 百态   2023-09-13
上海、济南、武汉等多地出现不明坠落物
 探索   2023-09-06
印度或要将国名改为“巴拉特”
 百态   2023-09-06
男子为女友送行,买票不登机被捕
 百态   2023-08-20
手机地震预警功能怎么开?
 干货   2023-08-06
女子4年卖2套房花700多万做美容:不但没变美脸,面部还出现变形
 百态   2023-08-04
住户一楼被水淹 还冲来8头猪
 百态   2023-07-31
女子体内爬出大量瓜子状活虫
 百态   2023-07-25
地球连续35年收到神秘规律性信号,网友:不要回答!
 探索   2023-07-21
全球镓价格本周大涨27%
 探索   2023-07-09
钱都流向了那些不缺钱的人,苦都留给了能吃苦的人
 探索   2023-07-02
倩女手游刀客魅者强控制(强混乱强眩晕强睡眠)和对应控制抗性的关系
 百态   2020-08-20
美国5月9日最新疫情:美国确诊人数突破131万
 百态   2020-05-09
荷兰政府宣布将集体辞职
 干货   2020-04-30
倩女幽魂手游师徒任务情义春秋猜成语答案逍遥观:鹏程万里
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案神机营:射石饮羽
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案昆仑山:拔刀相助
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案天工阁:鬼斧神工
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案丝路古道:单枪匹马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:与虎谋皮
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:李代桃僵
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:指鹿为马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:小鸟依人
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:千金买邻
 干货   2019-11-12
 
推荐阅读
 
 
 
>>返回首頁<<
 
靜靜地坐在廢墟上,四周的荒凉一望無際,忽然覺得,淒涼也很美
© 2005- 王朝網路 版權所有