处理卡片组大小限制
更新:2007 年 11 月
当基于 WML 的移动电话请求网页时,服务器返回的 WML 卡片组由 WAP 网关编译成紧凑形式表示的网页。这样,浏览器收到的就是这个已编译的卡片组。
大多数基于 WML 的浏览器对它们可接收的编译卡片组的大小有限制。这称为卡片组大小限制,它因各设备而异。由于该限制应用于在网关编译的内容,因此很难确定 WML 卡片组对设备而言是否太大。对动态数据绑定页而言尤其如此,因为网关编译导致的大小更改取决于 WML 卡片组的确切内容。
ASP.NET 不为了使卡片组适合各设备的卡片组大小限制而限制或截断页。一般原则是,设计页时必须使呈现的 WML 输出包含约 1,200 个字符。这通常可以避免由于动态内容的变化导致卡片组过大。
确定呈现大小
如果页上的控件是数据绑定控件,则将数据绑定到典型的数据集。
在模拟器上测试页。
使用以下两种方法之一确定呈现的输出大小:使用模拟器提供的信息,或使用 ASP.NET 应用程序跟踪。
减少页的呈现大小
若要减小由页呈现的标记的大小,请遵循以下准则:
使用属性重写指定标签、列表和其他控件的缩写文本。
通过将 Paginate 属性设置为 true 启用窗体分页。
将一个窗体分成一系列窗体。
使用带内容模板的 Panel 控件为其他设备提供单独的内容。
如果使用 List 或类似的控件,则通过设置 ItemsPerPage 属性减少每页上的项数。可以使用属性重写使该值特定于一个或多个基于 WML 的设备。
如果页的动态内容有显著变化,请重复测试包含不同数据量的页大小的步骤,并比较这些大小以确定如何减少页大小。
MobileCapabilities 类的 MaximumRenderedPageSize 属性提供目标设备的最大卡片组大小。通过将该值与属性重写一起使用,可以进一步自定义应用程序的内容以符合特定设备的要求。例如,如果设备的最大卡片组大小大于 2,000 个字节,可以根据 1,500 个字符(而不是 1,200 个字符)的原则来调整页内容的大小。