当前位置:沸点梦工场 > WAP网页设计 > Asp wap开发教程 > 浏览文章

ASP代码可以在模拟器上工作,在真正的浏览器上怎么不行

互联网 2007年06月03日 【字体:
在很多模拟器上没有像真正的WML浏览器那么严格。这些对于那些没有使用网关的模拟器(Nokia SDK/Toolkit)来说更是这样,有些就根本没有使用网关(WinWAP、WapMAN)。
一个真正的WML浏览器应该只读取二进制的数据(从WML编码得来的)WMLC,对于网关应该将文本WML转换/编译成WMLC。语法是非常严格的。ASP是为HTML浏览器设置的,但是HTML没有WML那么
严格。
这里在ASP生成动态页面的时候有一个微小的“bug”。它在WML浏览器上不允许有任何地方输出白行(例如:空格,回车,换行)。注意到有些网关可能会修正这些问题,但有的则不管(例如:CMG网关)。
下面是一个常见的ASP代码用来输出WML页面开头的MIME类型:

<%Response.ContentType = "text/vnd.wap.wml"%>
<?xml version="1.0"?>

问题就在ASP将会在 .wml"%> 和 <?xml vers 之间输出换行和回车。这两行就被分割了。这将打乱WML代码的内容。WML必须以“<”开头,而且第一行是<?xml version="1.0"?>。
就上面的WML页面回车/换行将会出现问题。
最简单的解决办法是:

<%Response.ContentType = "text/vnd.wap.wml"%><?xml version="1.0"?>

在XML定义正确的格式化以后,后面的部分WML对空格就没有那么严格的要求。

要注意的是有些网关在输出ASP的时候会有问题,因此在WML代码中最好使用 Response.Write 而不是<%=MyVar%>。