WML - Nhiệm vụ

Nhiệm vụ WML là một phần tử chỉ định một hành động sẽ đượ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ụ: hành động thay đổi thẻ mới được biểu thị bằng phần tử nhiệm vụ <go> và hành động quay lại thẻ trước đó đã truy cập được biểu thị bằng phần tử tác vụ <prev>. Các phần tử tác vụ đóng gói tất cả các thông tin cần thiết để thực hiện hành động.

WML cung cấp bốn phần tử sau đây để xử lý bốn tác vụ WML được gọi là tác vụ đi, tác vụ trước, tác vụ làm mới và liên kết

Tác vụ <go>:

Như tên cho thấy, nhiệm vụ <go> đại diện cho hành động chuyển sang một thẻ mới.

Phần tử <go> hỗ trợ các thuộc tính sau:

Thuộc tính Giá trị Sự miêu tả
href URL Cung cấp URL của thẻ mới. Các URL tương đối được giải quyết liên quan đến thẻ hiện tại
phương pháp
  • get
  • post
Chỉ định phương thức sẽ được sử dụng để tìm nạp bộ bài. Đây phải là một trong các giá trị get hoặc post, tương ứng với các phương thức GET và POST của HTTP.

Khi đang sử dụng method="get", dữ liệu được gửi dưới dạng yêu cầu với? dữ liệu được nối vào url. Phương pháp này có một nhược điểm là nó chỉ có thể được sử dụng cho một lượng dữ liệu hạn chế và nếu bạn gửi thông tin nhạy cảm, nó sẽ được hiển thị trên màn hình và được lưu trong nhật ký của máy chủ web. Vì vậy, không sử dụng phương pháp này nếu bạn đang gửi mật khẩu, v.v.

Với method="post", dữ liệu được gửi dưới dạng một yêu cầu với dữ liệu được gửi trong nội dung của yêu cầu. Phương pháp này không có giới hạn và thông tin nhạy cảm không hiển thị trong URL

người gửi thư
  • true
  • false
Nếu được đặt thành true, trình duyệt sẽ gửi URL của bộ bài hiện tại cùng với yêu cầu. URL này được gửi dưới dạng URL tương đối nếu có thể. Mục đích của việc này là cho phép các máy chủ thực hiện kiểm soát truy cập đơn giản trên các bộ bài, dựa trên đó các bộ bài đang liên kết với chúng. Ví dụ: sử dụng HTTP, thuộc tính này được gửi trong tiêu đề HTTP Referer.
chấp nhận ký tự charset_list Chỉ định danh sách các bộ ký tự được phân tách bằng dấu phẩy hoặc dấu cách có thể mã hóa dữ liệu được gửi đến máy chủ trong một yêu cầu POST. Giá trị mặc định là "không xác định".
lớp học dữ liệu lớp Đặt tên lớp cho phần tử.
Tôi ID phần tử Một ID duy nhất cho phần tử.

Sau đây là ví dụ hiển thị cách sử dụng phần tử <go>.

<?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>
       Chapter 2 : <go href="chapter2.wml"/>
   </anchor>
</p>
</card>
</wml>

Một ví dụ khác cho thấy cách tải lên dữ liệu bằng Get Method

<?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 Get Method 
      <go href="chapter2.wml?x=17&y=42" method="get"/>
   </anchor>
</p>
</card>
</wml>

Một ví dụ khác cho thấy cách tải lên dữ liệu bằng cách sử dụng phần tử <setvar>.

<?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"> 
	      <setvar name="x" value="17"/> 
  	      <setvar name="y" value="42"/> 
	  </go>
   </anchor>
</p>
</card>
</wml>

Một ví dụ khác cho thấy cách tải dữ liệu lên bằng phần tử <postfiled>

<?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>

Tác vụ <prev>:

Tác vụ <prev> đại diện cho hành động quay lại thẻ đã truy cập trước đó trên ngăn xếp lịch sử. Khi hành động này được thực hiện, mục trên cùng sẽ bị xóa khỏi ngăn xếp lịch sử và thẻ đó được hiển thị lại, sau khi bất kỳ phép gán biến <setvar> nào trong tác vụ <prev> có hiệu lực.

Nếu không tồn tại URL trước đó, việc chỉ định <prev> không có tác dụng.

Phần tử <prev> hỗ trợ các thuộc tính sau:

Thuộc tính Giá trị Sự miêu tả
lớp học dữ liệu lớp Đặt tên lớp cho phần tử.
Tôi ID phần tử Một ID duy nhất cho phần tử.

Dưới đây là ví dụ hiển thị cách sử dụng phần tử <prev>.

<?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>
        Previous Page :<prev/>
   </anchor>
</p>
</card>
</wml>

Một tình huống có thể hữu ích khi đưa các biến vào tác vụ <prev> là trang đăng nhập, trang này nhắc nhập tên người dùng và mật khẩu. Trong một số tình huống, bạn có thể muốn xóa trường mật khẩu khi quay lại thẻ đăng nhập, buộc người dùng phải nhập lại. Điều này có thể được thực hiện với một cấu trúc như:

<?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>

Tác vụ <refresh>:

Tác vụ <refresh> là tác vụ đơn giản nhất thực sự làm một việc gì đó. Tác dụng của nó chỉ đơn giản là thực hiện các phép gán biến được chỉ định bởi các phần tử <setvar> của nó, sau đó hiển thị lại thẻ hiện tại với các giá trị mới. Các tác vụ <go> và <prev> thực hiện cùng một hành động ngay trước khi hiển thị thẻ mới.

Tác vụ <refresh> thường được sử dụng để thực hiện một số loại hành động "đặt lại" trên thẻ.

Phần tử <refresh> hỗ trợ các thuộc tính sau:

Thuộc tính Giá trị Sự miêu tả
lớp học dữ liệu lớp Đặt tên lớp cho phần tử.
Tôi ID phần tử Một ID duy nhất cho phần tử.

Sau đây là ví dụ hiển thị cách sử dụng phần tử <refresh>.

<?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>

Tác vụ <noop>:

Mục đích của tác vụ <noop> là không làm gì cả (không hoạt động).

Công dụng thực sự duy nhất cho tác vụ này là liên quan đến các mẫu

Phần tử <noop> hỗ trợ các thuộc tính sau:

Thuộc tính Giá trị Sự miêu tả
lớp học dữ liệu lớp Đặt tên lớp cho phần tử.
Tôi ID phần tử Một ID duy nhất cho phần tử.

Sau đây là ví dụ hiển thị cách sử dụng phần tử <noop>.

<?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>