XHTML có hỗ trợ JavaScript không?

Nhận toàn quyền truy cập vào HTML & XHTML. The Definitive Guide, 5th Edition và hơn 60 nghìn đầu sách khác, với 10 ngày dùng thử miễn phí O'Reilly

Ngoài ra còn có các sự kiện trực tuyến trực tiếp, nội dung tương tác, tài liệu chuẩn bị chứng nhận, v.v.

Tài liệu Flask và các ứng dụng ví dụ đang sử dụng HTML5. Bạn có thể nhận thấy rằng trong nhiều trường hợp, khi các thẻ kết thúc là tùy chọn, chúng không được sử dụng, để HTML sạch hơn và tải nhanh hơn. Do có nhiều nhầm lẫn về HTML và XHTML giữa các nhà phát triển nên tài liệu này cố gắng trả lời một số câu hỏi chính

Lịch sử của XHTML¶

Trong một thời gian, có vẻ như HTML sắp bị thay thế bởi XHTML. Tuy nhiên, hầu như không có trang web nào trên Internet là XHTML thực (là HTML được xử lý bằng các quy tắc XML). Có một vài lý do chính tại sao đây là trường hợp. Một trong số đó là Internet Explorer thiếu hỗ trợ XHTML phù hợp. Thông số XHTML nói rằng XHTML phải được cung cấp với loại MIME ứng dụng/xhtml+xml, nhưng Internet Explorer từ chối đọc các tệp có loại MIME đó. Mặc dù việc cấu hình các máy chủ Web để phục vụ XHTML đúng cách là tương đối dễ dàng, nhưng ít người thực hiện được. Điều này có thể là do việc sử dụng XHTML đúng cách có thể khá khó khăn

Một trong những nguyên nhân quan trọng nhất gây khó khăn là việc xử lý lỗi hà khắc (nghiêm khắc và tàn nhẫn) của XML. Khi gặp lỗi phân tích cú pháp XML, trình duyệt phải hiển thị cho người dùng một thông báo lỗi xấu, thay vì cố gắng khắc phục lỗi và hiển thị những gì có thể. Hầu hết việc tạo (X)HTML trên web đều dựa trên các công cụ mẫu không phải XML (chẳng hạn như Jinja, công cụ được sử dụng trong Flask) không bảo vệ bạn khỏi việc vô tình tạo XHTML không hợp lệ. Có các công cụ mẫu dựa trên XML, chẳng hạn như Kid và Genshi phổ biến, nhưng chúng thường đi kèm với chi phí thời gian chạy lớn hơn và không dễ sử dụng vì chúng phải tuân theo các quy tắc XML

Tuy nhiên, phần lớn người dùng cho rằng họ đang sử dụng XHTML đúng cách. Họ đã viết một loại tài liệu XHTML ở đầu tài liệu và tự đóng tất cả các thẻ cần thiết (
trở thành
hoặc

trong XHTML). Tuy nhiên, ngay cả khi tài liệu xác thực hợp lệ là XHTML, điều thực sự quyết định quá trình xử lý XHTML/HTML trong trình duyệt là loại MIME, như đã nói trước đây thường không được đặt đúng cách. Vì vậy, XHTML hợp lệ đã được coi là HTML không hợp lệ

XHTML cũng thay đổi cách JavaScript được sử dụng. Để làm việc đúng cách với XHTML, các lập trình viên phải sử dụng giao diện DOM được đặt tên với không gian tên XHTML để truy vấn các phần tử HTML

Lịch sử của HTML5¶

Việc phát triển đặc tả HTML5 được bắt đầu vào năm 2004 với tên gọi “Ứng dụng Web 1. 0” của Nhóm làm việc về công nghệ ứng dụng siêu văn bản Web, hoặc WHATWG (được thành lập bởi các nhà cung cấp trình duyệt lớn Apple, Mozilla và Opera) với mục tiêu viết một đặc tả HTML mới và cải tiến, dựa trên hành vi trình duyệt hiện có thay vì không thực tế và

Ví dụ: trong HTML4, về mặt lý thuyết, </code> phân tích chính xác giống như <code><span><title>Hello. Tuy nhiên, vì mọi người đang sử dụng các thẻ giống như XHTML dọc theo các dòng của />, nên các nhà cung cấp trình duyệt đã triển khai cú pháp XHTML theo cú pháp được xác định bởi thông số kỹ thuật

Vào năm 2007, đặc tả này đã được thông qua làm cơ sở cho một đặc tả HTML mới dưới sự bảo trợ của W3C, được gọi là HTML5. Hiện tại, có vẻ như XHTML đang mất dần sức hút vì nhóm làm việc XHTML 2 đã bị giải tán và HTML5 đang được triển khai bởi tất cả các nhà cung cấp trình duyệt lớn

HTML so với XHTML¶

Bảng sau đây cung cấp cho bạn tổng quan nhanh về các tính năng có sẵn trong HTML 4. 01, XHTML 1. 1 và HTML5. (XHTML 1. 0 không được bao gồm, vì nó đã được thay thế bởi XHTML 1. 1 và XHTML5 ít được sử dụng. )

HTML4. 01

XHTML1. 1

HTML5

== value

XHTML có hỗ trợ JavaScript không?
1

XHTML có hỗ trợ JavaScript không?

XHTML có hỗ trợ JavaScript không?


được hỗ trợ

XHTML có hỗ trợ JavaScript không?

XHTML có hỗ trợ JavaScript không?

XHTML có hỗ trợ JavaScript không?
2


0 được hỗ trợ

XHTML có hỗ trợ JavaScript không?

XHTML có hỗ trợ JavaScript không?

XHTML có hỗ trợ JavaScript không?

nên được phục vụ dưới dạng văn bản/html

XHTML có hỗ trợ JavaScript không?

XHTML có hỗ trợ JavaScript không?
3

XHTML có hỗ trợ JavaScript không?

nên được phục vụ dưới dạng ứng dụng/xhtml+xml

XHTML có hỗ trợ JavaScript không?

XHTML có hỗ trợ JavaScript không?

XHTML có hỗ trợ JavaScript không?

xử lý lỗi nghiêm ngặt

XHTML có hỗ trợ JavaScript không?

XHTML có hỗ trợ JavaScript không?

XHTML có hỗ trợ JavaScript không?

SVG nội tuyến

XHTML có hỗ trợ JavaScript không?

XHTML có hỗ trợ JavaScript không?

XHTML có hỗ trợ JavaScript không?

MathML nội tuyến

XHTML có hỗ trợ JavaScript không?

XHTML có hỗ trợ JavaScript không?

XHTML có hỗ trợ JavaScript không?

thẻ
1

XHTML có hỗ trợ JavaScript không?

XHTML có hỗ trợ JavaScript không?

XHTML có hỗ trợ JavaScript không?

thẻ
2

XHTML có hỗ trợ JavaScript không?

XHTML có hỗ trợ JavaScript không?

XHTML có hỗ trợ JavaScript không?

Các thẻ ngữ nghĩa mới như
3

XHTML có hỗ trợ JavaScript không?

XHTML có hỗ trợ JavaScript không?

XHTML có hỗ trợ JavaScript không?

1

Đây là một tính năng tối nghĩa được kế thừa từ SGML. Nó thường không được hỗ trợ bởi các trình duyệt, vì những lý do chi tiết ở trên

2

Điều này là để tương thích với mã máy chủ tạo XHTML cho các thẻ như
. Nó không nên được sử dụng trong mã mới

3

XHTML 1. 0 là tiêu chuẩn XHTML cuối cùng cho phép được phân phát dưới dạng văn bản/html vì lý do tương thích ngược

“Nghiêm ngặt” nghĩa là gì?¶

HTML5 đã xác định nghiêm ngặt các quy tắc phân tích cú pháp, nhưng nó cũng chỉ định chính xác cách trình duyệt sẽ phản ứng với các lỗi phân tích cú pháp - không giống như XHTML, vốn chỉ đơn giản tuyên bố rằng nên hủy bỏ phân tích cú pháp. Một số người bối rối bởi cú pháp rõ ràng không hợp lệ mà vẫn tạo ra kết quả như mong đợi (ví dụ: thiếu thẻ kết thúc hoặc giá trị thuộc tính không được trích dẫn)

Một số trong số này hoạt động do xử lý lỗi dễ dàng mà hầu hết các trình duyệt sử dụng khi chúng gặp lỗi đánh dấu, một số khác thực sự được chỉ định. Các cấu trúc sau đây là tùy chọn trong HTML5 theo tiêu chuẩn, nhưng phải được trình duyệt hỗ trợ

  • Gói tài liệu trong thẻ
    5

  • Gói phần tử tiêu đề trong
    6 hoặc phần tử nội dung trong
    7

  • Đóng các thẻ
    8,
    9,
    0,
    1,
    2,
    3,
    4,
    5,
    6, hoặc
    7

  • Thuộc tính trích dẫn, miễn là chúng không chứa khoảng trắng hoặc ký tự đặc biệt (như
    8,
    9,

    0 hoặc

    1)

  • Yêu cầu các thuộc tính boolean có giá trị

Điều này có nghĩa là trang sau trong HTML5 hoàn toàn hợp lệ


<title>Hello HTML5title>
<div class=header>
  <h1>Hello HTML5h1>
  <p class=tagline>HTML5 is awesome
div>
<ul class=nav>
  <li><a href=/index>Indexa>
  <li><a href=/downloads>Downloadsa>
  <li><a href=/about>Abouta>
ul>
<div class=body>
  <h2>HTML5 is probably the futureh2>
  <p>
    There might be some other things around but in terms of
    browser vendor support, HTML5 is hard to beat.
  <dl>
    <dt>Key 1
    <dd>Value 1
    <dt>Key 2
    <dd>Value 2
  dl>
div>

Các công nghệ mới trong HTML5¶

HTML5 bổ sung nhiều tính năng mới giúp các ứng dụng Web dễ viết và sử dụng hơn

  • Các thẻ
    2 và
    1 cung cấp cách nhúng âm thanh và video mà không cần các tiện ích bổ sung phức tạp như QuickTime hoặc Flash

  • Các yếu tố ngữ nghĩa như
    3,

    5,

    6 và

    7 giúp nội dung dễ hiểu hơn

  • Thẻ

    8, hỗ trợ API vẽ mạnh mẽ, giảm nhu cầu về hình ảnh do máy chủ tạo để trình bày dữ liệu bằng đồ họa

  • Các loại điều khiển biểu mẫu mới như

    9 cho phép tác nhân người dùng thực hiện việc nhập và xác thực giá trị dễ dàng hơn

  • API JavaScript nâng cao như Lưu trữ web, Công nhân web, Ổ cắm web, định vị địa lý và ứng dụng ngoại tuyến

Nhiều tính năng khác cũng đã được thêm vào. Hướng dẫn tốt về các tính năng mới trong HTML5 là cuốn sách sắp xuất bản của Mark Pilgrim, Dive Into HTML5. Tuy nhiên, không phải tất cả chúng đều được hỗ trợ trong các trình duyệt, vì vậy hãy thận trọng

Nên dùng cái gì?¶

Hiện tại, câu trả lời là HTML5. Có rất ít lý do để sử dụng XHTML khi xem xét những phát triển mới nhất trong trình duyệt Web. Tóm tắt các lý do nêu trên

  • Internet Explorer (đáng tiếc là hiện đang dẫn đầu về thị phần) hỗ trợ kém cho XHTML

  • Nhiều thư viện JavaScript cũng không hỗ trợ XHTML do API đặt tên phức tạp hơn mà nó yêu cầu

  • HTML5 thêm một số tính năng mới, bao gồm các thẻ ngữ nghĩa và các thẻ
    2 và
    1 đã được chờ đợi từ lâu

    Làm cách nào để gọi JS từ XHTML?

    Bước 1. Đầu tiên, chúng ta phải nhập thẻ script giữa phần đầu và phần cuối của thẻ Sau đó, nhập hàm JavaScript . Bước 2. Sau đó, chúng ta phải gọi hàm javaScript trong mã Html để hiển thị thông tin hoặc dữ liệu trên trang web.

    JavaScript có hoạt động trong XML không?

    Với XML, dữ liệu có thể được lưu trữ trong các tệp XML riêng biệt. Với một vài dòng mã JavaScript, bạn có thể đọc tệp XML và cập nhật nội dung dữ liệu của bất kỳ trang HTML nào .

    XHTML có phải là ngôn ngữ kịch bản không?

    16. 2. Vì XHTML không dựa trên một ngôn ngữ tập lệnh cụ thể nên tác giả tài liệu phải thông báo rõ ràng cho tác nhân người dùng về ngôn ngữ của từng tập lệnh. Điều này có thể được thực hiện thông qua khai báo mặc định hoặc khai báo cục bộ.

    Thẻ nào hoạt động với JavaScript?

    Thẻ