Các ứng dụng HTML5 là gì?

HTML5 làm cho Web trở thành môi trường hạng nhất để tạo các ứng dụng thực. Nó củng cố bộ công cụ hiện có của JavaScript với các tiện ích mở rộng chính cho API trình duyệt giúp dễ dàng tạo các ứng dụng cảm thấy (và có thể) tự hoàn thiện, chứ không chỉ xem trên một số quy trình máy chủ ở xa

Web bắt đầu như một cách để chia sẻ tệp, được lưu trữ trên máy chủ web, chỉ thỉnh thoảng thay đổi. Các nhà phát triển đã nhanh chóng tìm ra cách tạo các tệp đó một cách nhanh chóng, thực hiện bước tiến lớn đầu tiên để xây dựng các ứng dụng. Bước quan trọng tiếp theo là thêm tính tương tác trong ứng dụng trình duyệt. JavaScript và Mô hình đối tượng tài liệu (DOM) cho phép các nhà phát triển tạo HTML động, khi “cuộc chiến trình duyệt” nổ ra rồi đột ngột dừng lại. Sau một vài năm, Ajax đã đưa các kỹ thuật này trở lại phong cách, thêm một số công cụ để cho phép các trang giao tiếp với máy chủ theo các phần nhỏ hơn

HTML5 được xây dựng trên 20 năm phát triển này và lấp đầy một số lỗ hổng quan trọng. Nhìn bề ngoài, nhiều thay đổi của HTML5 bổ sung hỗ trợ cho các tính năng (đặc biệt là đa phương tiện và đồ họa) mà trước đây yêu cầu phải có các trình cắm thêm, nhưng bên dưới, nó cung cấp cho các lập trình viên JavaScript các công cụ họ cần để tạo các ứng dụng độc lập (hoặc ít nhất là kết nối lỏng lẻo hơn) bằng cách sử dụng

HTML5 nâng tầm cho các ứng dụng web. Mặc dù nó vẫn phải hoạt động dưới các ràng buộc bảo mật, nhưng cuối cùng nó cũng cung cấp các công cụ mà các nhà phát triển máy tính để bàn đã mong đợi trong nhiều năm

Lưu trữ dữ liệu cục bộ

Nó có thể lưu trữ tới 5 MB dữ liệu, được tham chiếu bằng hệ thống khóa-giá trị

cơ sở dữ liệu

Ban đầu là một API dựa trên SQLite, làn sóng dường như đã chuyển sang IndexedDB, một hệ thống NoSQL vốn là JavaScript

Các tập tin

Mặc dù các ứng dụng vẫn không thể tự do truy cập vào hệ thống tệp (vì lý do bảo mật rõ ràng), giờ đây chúng có thể hoạt động với các tệp do người dùng chỉ định và cũng bắt đầu có thể tạo tệp

Mang nó đi ngoại tuyến

Khi máy tính xách tay hoặc điện thoại ở chế độ trên máy bay, các ứng dụng web không thể giao tiếp với máy chủ. Các tệp kê khai giúp các nhà phát triển giải quyết vấn đề đó bằng cách lưu các tệp vào bộ đệm để sử dụng sau này

Công nhân web

Chủ đề và nhánh luôn có vấn đề, nhưng JavaScript đơn giản là không cung cấp chúng. Công nhân web cung cấp một cách để đặt các quy trình ứng dụng vào các không gian riêng biệt nơi chúng có thể hoạt động mà không chặn mã khác

ổ cắm web

Giao thức truyền tải siêu văn bản (HTTP) là nền tảng của Web, mặc dù có một số cập nhật theo thời gian. Ổ cắm web chuyển đổi cách tiếp cận yêu cầu phản hồi để tạo ra các hệ thống liên lạc linh hoạt hơn nhiều

Tất nhiên, còn nhiều hơn nữa—từ vị trí địa lý đến âm thanh và video đến đồ họa Canvas đến nhiều loại thẻ nhỏ mới—nhưng những thẻ này cung cấp nền tảng để xây dựng các ứng dụng có sức mạnh công nghiệp trong HTML5

Trước đây, một ứng dụng web phức tạp có thể là một danh mục, đó sẽ là các trang tĩnh được lấy từ cơ sở dữ liệu hoặc máy tính cho vay JavaScript. Nhưng không ai có thể mơ ước thực hiện các ứng dụng phức tạp trong JavaScript. Những yêu cầu Java hoặc có thể là ứng dụng máy khách/máy chủ chuyên dụng được viết bằng C hoặc C++. Thật vậy, vào thời trước khi có DOM và Ajax, việc phát triển các ứng dụng phức tạp bằng JavaScript gần như là điều không thể. Tuy nhiên, Ajax đã giới thiệu khả năng tương tác với máy chủ mà không cần tải lại trang và DOM cho phép lập trình viên thay đổi HTML một cách nhanh chóng

Vào năm 2007, Google đã giới thiệu Gears, một tiện ích mở rộng của trình duyệt mang lại cho nhà phát triển nhiều quyền lực hơn so với trước đây. Gears cho phép trình duyệt hoạt động ngoại tuyến, cho phép người dùng lưu trữ nhiều dữ liệu hơn trong trình duyệt và có một nhóm nhân viên để giảm tải các tác vụ chạy trong thời gian dài. Kể từ đó, Gears đã ngừng hoạt động vì hầu hết các tính năng của nó đã chuyển sang HTML5 ở dạng đã sửa đổi

Web hiện đại có đầy đủ các trang web, từ những thứ vẫn còn là bộ sưu tập tài liệu kiểu cũ, như Wikipedia, đến các trang cung cấp tương tác với người khác, chẳng hạn như Facebook, YouTube và eBay, cho đến những thứ có thể phục vụ như . Nhiều ứng dụng độc lập trước đây, chẳng hạn như ứng dụng thư khách, đã trở thành một phần không thể thiếu của trải nghiệm web. Trong Web hiện đại, ranh giới giữa các ứng dụng và các trang đã bị xóa nhòa. Sự khác biệt ở điểm này chỉ nằm ở mục đích của trang web

Chạy một ứng dụng trong trình duyệt có một số lợi thế lớn cho cả người dùng và nhà phát triển. Đối với người dùng, không có cam kết với ứng dụng. bạn dùng thử và nếu không thích, bạn có thể chuyển sang trang tiếp theo mà không để lại thứ gì làm lộn xộn đĩa của bạn. Việc thử các ứng dụng mới cũng khá an toàn vì chúng chạy trong môi trường có hộp cát. Các phiên bản mới của ứng dụng được tự động tải xuống trình duyệt khi nhà phát triển cập nhật mã. Các ứng dụng web hiếm khi có số phiên bản, ít nhất là số phiên bản công khai

Đối với nhà phát triển, trường hợp thậm chí còn mạnh mẽ hơn. Trước hết, những thứ mang lại lợi ích cho người dùng cũng tốt cho các nhà phát triển. Không có chương trình cài đặt để viết và các phiên bản mới có thể tự động được gửi tới người dùng, giúp tạo ra các bản cập nhật nhỏ, gia tăng không chỉ khả thi mà còn thiết thực. Tuy nhiên, cũng có những phần thưởng khác

Web đa nền tảng. Có thể viết một trang web sẽ hoạt động trên Windows XP, Windows Vista, Windows 7, Mac OS X, Linux, iPhone/iPad và Android. Làm điều đó với một công cụ phát triển thông thường sẽ là một nhiệm vụ to lớn. Nhưng với Web và một số dự kiến, nó gần như miễn phí. Một ứng dụng web được xây dựng dựa trên các tiêu chuẩn với thư viện như jQuery sẽ có thể chạy trên các trình duyệt chính trên tất cả các nền tảng đó và một số nền tảng khác. Trong khi tại một thời điểm, Sun hy vọng rằng các applet Java của mình sẽ xác định Web là một nền tảng, thì JavaScript đã trở thành nền tảng web mặc định.

Bạn thậm chí có thể chạy các ứng dụng web trên thiết bị di động, ít nhất là những thiết bị mà ngày nay được gọi là điện thoại thông minh. Với trình bao bọc như PhoneGap, bạn có thể tạo và đóng gói ứng dụng HTML5 để bán trong App Store, Android Market, v.v. Bạn có thể tạo một ứng dụng tương tác nhiều với máy chủ web hoặc bạn có thể tạo một ứng dụng hoàn toàn độc lập. Cả hai tùy chọn đều có sẵn

Vị trí thực sự mà Web, trước HTML5, theo truyền thống bị thiếu hụt là một ứng dụng web, chạy trên máy tính có bộ nhớ và dung lượng ổ đĩa hàng gigabyte, hoạt động gần giống như đang chạy trên thiết bị đầu cuối VT320 cũ. Tất cả việc lưu trữ dữ liệu phải được thực hiện trên một máy chủ, tất cả các tệp phải được tải từ máy chủ và mọi tương tác đều yêu cầu một chuyến đi khứ hồi đến máy chủ. Điều này có thể khiến trải nghiệm người dùng cảm thấy chậm, đặc biệt nếu máy chủ cách xa người dùng. Nếu mỗi khi người dùng muốn tìm kiếm thứ gì đó, thời gian phản hồi tối thiểu là 400 mili giây trước khi có thể thực hiện bất kỳ hành động nào, ứng dụng sẽ cảm thấy chậm. Từ văn phòng của tôi ở Tel Aviv đến một máy chủ ở California, thời gian khứ hồi cho ping ICMP là khoảng 250 mili giây. Mọi hành động trên máy chủ sẽ thêm và làm chậm hơn nữa. Tất nhiên, giao tiếp trên thiết bị di động có thể còn chậm hơn nữa

Mặc dù JavaScript đã là một thành phần quan trọng trong quá trình phát triển web kể từ khi nó xuất hiện lần đầu tiên vào năm 1995, nhưng nó đã trải qua khoảng một thập kỷ với tiếng xấu. Nó cung cấp hiệu suất yếu, được trang bị một cú pháp kỳ quặc dẫn đến các lỗi bí ẩn và bị phụ thuộc vào DOM. Các trình duyệt khóa nó trong một “hộp cát”, giúp giảm bớt lo ngại về bảo mật của người dùng nhưng khiến các nhà phát triển rất khó cung cấp các tính năng có vẻ tầm thường trong phát triển ứng dụng máy tính để bàn truyền thống hơn

Văn hóa viết kịch bản tạo ra vấn đề của riêng mình. Mặc dù cung cấp một rào cản gia nhập rất thấp là một điều tốt, nhưng nó đi kèm với chi phí. Một trong những chi phí đó là một ngôn ngữ như vậy thường cho phép các lập trình viên thiếu kinh nghiệm làm một số điều rất không nên. Các lập trình viên mới bắt đầu có thể dễ dàng tìm thấy các ví dụ về JavaScript trên Web, cắt và dán chúng, thay đổi một số thứ và có thứ hoạt động tốt nhất. Thật không may, việc duy trì mã như vậy ngày càng trở nên khó khăn hơn theo thời gian

Với sự hồi sinh của Ajax, các nhà phát triển đã có một cái nhìn mới về JavaScript. Một số đã làm việc để cải thiện các công cụ diễn giải và chạy mã JavaScript, dẫn đến những cải tiến đáng kể về tốc độ. Những người khác tập trung vào chính ngôn ngữ đó, nhận ra rằng nó có một số tính năng rất hay và do đó phát triển các phương pháp hay nhất giống như các phương pháp được nêu trong JavaScript. Những phần hay của Douglas Crockford (O'Reilly, 2008)

Ngoài ngôn ngữ cốt lõi, các nhà phát triển đã xây dựng các công cụ giúp việc gỡ lỗi JavaScript dễ dàng hơn nhiều. Mặc dù Venkman, một trình gỡ lỗi đầu tiên, đã xuất hiện vào năm 1998, nhưng phiên bản Firebug năm 2006 đã trở thành tiêu chuẩn vàng của trình gỡ lỗi JavaScript. Nó cho phép nhà phát triển theo dõi các cuộc gọi Ajax, xem trạng thái của DOM và CSS, một bước thông qua mã, v.v. Các trình duyệt được xây dựng trên WebKit, đặc biệt là Safari của Apple và Google Chrome, cung cấp chức năng tương tự được tích hợp sẵn và Opera Dragonfly cung cấp hỗ trợ cho Opera. Ngay cả các nhà phát triển làm việc trong không gian hạn chế của thiết bị di động giờ đây cũng có thể gỡ lỗi giống như Firebug với weinre (WEb INspector REmote)

Thành phần quan trọng cuối cùng trong khoản đầu tư lớn gần đây vào JavaScript này là các thư viện. Các nhà phát triển vẫn có thể không hiểu tất cả mã họ đang sử dụng, nhưng việc tổ chức mã đó thành các thư viện có thể nâng cấp dễ dàng và đôi khi thậm chí có thể hoán đổi cho nhau đã đơn giản hóa việc quản lý mã

jQuery

Nếu bất cứ điều gì có thể được mô tả là tiêu chuẩn vàng của các thư viện JavaScript, thì đó phải là thư viện jQuery của John Resig, tạo thành một trình bao bọc xung quanh DOM và các đối tượng JavaScript khác như đối tượng XMLHttpRequest và làm cho tất cả mọi thứ trong JavaScript trở nên dễ dàng hơn. . Theo nhiều cách, jQuery là thư viện JavaScript cần thiết mà mọi lập trình viên JavaScript nên biết

Để học jQuery, hãy xem trang web jQuery hoặc một số cuốn sách hay về chủ đề này, chẳng hạn như Head First jQuery của Ryan Benedetti và Ronan Cranley hoặc jQuery Cookbook của Cody Lindley, cả hai đều được xuất bản bởi O’Reilly. Nhiều ví dụ trong cuốn sách này được viết bằng jQuery

ExtJS

Trong khi jQuery tạo thành một trình bao bọc xung quanh DOM, ExtJS của Sencha cố gắng trừu tượng hóa nó càng nhiều càng tốt. ExtJS có một bộ tiện ích phong phú có thể tồn tại trong một trang web và cung cấp nhiều tiện ích, chẳng hạn như cây, lưới, biểu mẫu, nút, v.v. mà các nhà phát triển máy tính để bàn quen thuộc với. Toàn bộ hệ thống được cân nhắc rất kỹ lưỡng, ăn khớp với nhau rất tốt và khiến việc phát triển nhiều loại ứng dụng trở thành một niềm vui. Mặc dù thư viện ExtJS chiếm rất nhiều dung lượng, nhưng chi phí này rất đáng giá đối với một số loại phát triển ứng dụng

Một tính năng hay của ExtJS là nhiều đối tượng của nó biết cách lưu trạng thái của chúng. Vì vậy, nếu người dùng lấy một lưới và sắp xếp lại các cột, trạng thái có thể được lưu để cùng một thứ tự xuất hiện vào lần tiếp theo khi người dùng xem lưới đó. Sử dụng localStorage trong ExtJS sẽ chỉ ra cách sử dụng tiện ích HTML5 localStorage với tính năng này

Bộ công cụ web của Google, v.v.

Các công cụ như GWT cho phép lập trình viên viết mã Java, mã này sau đó được biên dịch thành JavaScript và có thể chạy trên trình duyệt

HTML5 giải thích bằng ví dụ là gì?

HTML 5 là bản sửa đổi của Ngôn ngữ đánh dấu siêu văn bản (HTML), ngôn ngữ lập trình chuẩn để mô tả nội dung và giao diện của các trang Web . HTML5 được phát triển để giải quyết các vấn đề tương thích ảnh hưởng đến tiêu chuẩn hiện tại, HTML4.

Các tính năng HTML5 là gì?

cho phép nhà phát triển nhúng video hoặc âm thanh vào trang web của họ . Video HTML5 có thể sử dụng CSS và CSS3 để tạo kiểu cho thẻ video. Bạn có thể thay đổi đường viền, độ mờ, phản xạ, độ dốc, chuyển tiếp, chuyển đổi và thậm chí cả hoạt ảnh. HTML5 giúp thêm video siêu nhanh và không cần phải xây dựng trình phát video.