WML - Wireless Markup Language P2
Bài đăng này đã không được cập nhật trong 3 năm
Overview
Ở bài trước mình đã chia sẻ về WML cơ bản, cách cài đặt, cấu hình WML trên Apache và IIS. Mình cũng đã chia sẻ về các Element mà WML hiện có. Các bạn có thể đọc lại tại bài WML - Wireless Markup Language P1
Trong phần 2 này mình sẽ viết tiếp WML và chi tiết hơn về một số Element đặc biệt của WML.
WML - comments
Giống với hầu hết các ngôn ngữ lập trình, WML cũng có thể đặt được comment trong mã. Với mục đích ghi lại các quyết định của chương trình trong code, việc này sẽ giup cho việc bảo trì dễ dàng hơn. WML sử dụng các định dạng tương tự HTML để comment một đoạn trong code.
- Oneline comment
<!-- This will be assumed as a comment -->
- Multiline comment
<!-- This is a multi-line
comment -->
WML - variables
Có 2 cách khai báo biến trong WML
1. <setvar>
element
Các <setvar>
là kết qủa của việc sử lý một số việc. Các <setvar>
có thể được sử dụng để thiết lập một biến theo các thành phần sau: <go>
, <prev>
và <refresh>
.
Các attributes thiết đặt cho <setvar>
element
name
thiết đặt tên cho biếnvalue
thiết đặt gía trị cho biếnclass
thiết đặt tên classid
thiết đặt một ID (ID này là duy nhất cho 1 element)
Ví dụ khởi tạo một biến a có gía trị là 1000
<setvar name="a" value="1000"/>
2. input
element
Biến cũng được thiết lập thông qua yếu tố đầu vào như input
, select
, option
. Một biến được tự động tạo ra tương ứng với các thuộc tính được đặt tên của một yếu tố đầu vào.
Ví dụ, các yếu tố sau đây sẽ tạo ra một biến có tên là b
<select name="b">
<option value="value1">Option 1</option>
<option value="value2">Option 2</option>
</select>
3. Using Variables
Mở rộng biến xảy ra trong thời gian chạy, trong microbrowser hoặc giả lập. Điều này có nghĩa là nó có thể được sử dụng qua các deck hoặc nhúng trong văn bản khác nhau.
Các biến được tham chiếu với một dấu $
, và bất kỳ dấu hiệu đồng $
trong boong WML đều được hiểu như là một tham chiếu biến. Ví dụ khi ta gọi $a
, $b
WML - Tasks
Task trong WML là một yếu tố xác định một hành động được thực hiện bởi trình duyệt, chứ không phải là một cái gì đó sẽ được hiển thị. Ví dụ, các hành động của một thẻ mới được đại diện bởi một <go>
, và các hành động của việc trở lại được đại diện bởi <pre>
. Các tasks element sẽ đóng gói tất cả các thông tin cần thiết để thực hiện các hành động.
WML có bốn yếu tố để xử lý tasks WML gồm go task, pre task, refresh task and noop taks.
<Go>
Task
Như tên cho thấy, các <go>
task đại diện cho hành động đi đến một thẻ mới.
Các <go>
có các thuộc tính sau:
href
dạng url, cung cấp cho các URL của thẻ mới.method
có 2 dạng get và post. Chỉ định các phương pháp đó phải được sử dụng trong một deck. Đây phải là một trong các giá trị tương ứng với GET và POST phương pháp HTTPsendreferer
có 2 gía trị true và false. Nếu thiết lập là true, trình duyệt sẽ gửi URL của deck đến cùng với request.accept-charset
gía trị mặc định là unknown.class
thiết lập class cho elementid
là một gía trị unique
<?xml version="1.0"?>
<!DOCTYPE wml PUBLIC "-//WAPFORUM//DTD WML 1.2//EN"
"http://www.wapforum.org/DTD/wml12.dtd">
<wml>
<card title="GO Element">
<p>
<anchor>
Using setvar:
<go href="chapter2.wml" method="get">
<postfield name="x" value="17"/>
<postfield name="y" value="42"/>
</go>
</anchor>
</p>
</card>
</wml>
<prev>
Task
Các <pre>
task sử dụng cho việc quay trở lại thẻ truy cập trước đó. Nếu không có URL trước tồn tại, <pre>
không có hiệu lực.
class
thiết đặt tên class cho elementid
thiết đặt Id unique
<?xml version="1.0"?>
<!DOCTYPE wml PUBLIC "-//WAPFORUM//DTD WML 1.2//EN"
"http://www.wapforum.org/DTD/wml12.dtd">
<wml>
<card title="Prev Element">
<p>
<anchor>
<prev>
<setvar name="password" value=""/>
</prev>
</anchor>
</p>
</card>
</wml>
<refresh>
Task
Sử dụng thẻ này để thiết lập lại một số hành động trên thẻ
class
thiết lập tên class cho elementid
thiết lập id unique
<?xml version="1.0"?>
<!DOCTYPE wml PUBLIC "-//WAPFORUM//DTD WML 1.2//EN"
"http://www.wapforum.org/DTD/wml12.dtd">
<wml>
<card title="Referesh Element">
<p>
<anchor>
Refresh this page:
<go href="test.wml"/>
<refresh>
<setvar name="x" value="100"/>
</refresh>
</anchor>
</p>
</card>
</wml>
*<noop>
Task
Mục đích sử dụng thẻ này là đi đến việc không làm gì (no operation). Các attributes cho thẻ
class
id
<?xml version="1.0"?>
<!DOCTYPE wml PUBLIC "-//WAPFORUM//DTD WML 1.2//EN"
"http://www.wapforum.org/DTD/wml12.dtd">
<wml>
<card title="Noop Element">
<p>
<do type="prev" label="Back">
<noop/>
</do>
</p>
</card>
</wml>
WML - Timer
Đôi khi, bạn có thể muốn một cái gì đó xảy ra mà không cần người dùng phải kích hoạt một điều khiển. WML cung cấp cho bạn OnTimer để xử lý vấn đề này. Gía trị time sẽ được đếm ngược đến khi về 0 và tính theo đơn vị giây. Các attributes cho Timer
name
tên cho elementvalue
gía trị cho timeoutclass
id
Ví dụ cụ thể sau khi click vào Enter
5s sẽ hiển thị ra dòng chữ welcome to he main screen
Regard
Mình xin dừng lại bài giới thiệu WML tại đây. Trên đây là toàn bộ những element đặc biệt trong WML. Các bạn có thể sử dụng WML để viết ra một trang WAP hiển thị trên thiết bị di động. Tiêu chí của WML là nhẹ, không tốn băng thông nên rất phù hợp cho việc thiết kế mobile wap.
Tài liệu tham khảo
http://www.w3school.com.cn/wap
All rights reserved