Tại sao chúng ta vẫn sử dụng DOM trong trình duyệt chứ không phải mô hình máy tính để bàn


11

Theo hiểu biết của tôi, giao diện web được phát triển để sử dụng HTML vì tại thời điểm đó, không thể mô phỏng ứng dụng kiểu máy tính để bàn trong trình duyệt như cách Silverlight và Flash hoạt động, do hạn chế về băng thông và có thể xử lý.

Tại sao trong quá khứ không có, và hiện tại là sự chấp nhận và thúc đẩy lớn hơn cho các công nghệ như Flash / Silverlight? Từ kinh nghiệm của tôi, họ hài lòng hơn để phát triển (tất nhiên là ý kiến ​​của tôi) và bạn không phải đối phó với việc tuân thủ trình duyệt chéo và các trình duyệt cũ hơn (đối với hầu hết các phần).

Xử lý các postback, AJAX, v.v ... có vẻ như là nỗ lực không cần thiết thêm so với mô hình phát triển của các ứng dụng máy tính để bàn. Có phải DOM và các công nghệ đáng khen của nó tiếp tục phát triển chủ yếu dựa trên thực tế là Silverlight / Flash yêu cầu cài đặt plugin và một số thiết bị di động không hỗ trợ plugin?


1
Bởi vì DOM không phải là công dân hạng hai. Silverlight và flash là trừu tượng rò rỉ. Bạn có thể dễ dàng có máy tính để bàn riêng như các ứng dụng trong trình duyệt người dùng DOM. Nó chỉ đơn giản là thực hiện và tích hợp tốt hơn sau đó flash hoặc silverlight.
Raynos

Câu trả lời:


17

Một vài lý do tôi có thể nghĩ ra, ngoài đỉnh đầu:

  • Ngày nay, ngăn xếp web truyền thống khá trưởng thành; các trình duyệt hiện đại có rất ít quirks còn lại và thiết kế trang web cho chúng tương đối dễ chịu, so với chỉ 5 năm trước
  • Mặc dù có sự khác biệt giữa các trình duyệt, nhưng chúng ít liên quan hơn so với sự khác biệt giữa HĐH cơ bản và phần cứng
  • Mô hình yêu cầu / phản hồi thực sự hoạt động rất tốt cho nhiều thứ, chẳng hạn như trình bày nội dung nặng văn bản
  • Công cụ tìm kiếm không quan tâm chính xác đến nội dung Flash hoặc Silverlight
  • Flash và Silverlight đều được kiểm soát bởi một công ty duy nhất; sử dụng chúng có nghĩa là hỗ trợ nền tảng trong tương lai cho mã của bạn là sự thương xót của các công ty này
  • Nhiều điều bạn có thể làm với HTML không thể được thực hiện bằng các plugin: nghĩ dấu trang, sao chép-dán, dịch nhanh, các biểu định kiểu tùy chỉnh
  • Các plugin không chơi tốt với các trình duyệt không chuẩn - nghĩ rằng trình duyệt văn bản, trình duyệt âm thanh và một loạt các thiết bị khác có thể hiển thị các trang web
  • Bạn không thể dễ dàng tự động hóa các ứng dụng khách Flash hoặc Silverlight, trong khi điều khiển các trang web HTML từ các tập lệnh thường khá đơn giản.

Một điều nữa tôi có thể nghĩ đến: các plugin này không phải là nguồn mở. Và một số người không tin tưởng vào những điều họ không thể làm được git clone. Tất nhiên bạn có thể nhận các phiên bản nguồn mở, như Gource hoặc Moonlight, nhưng chúng không thực sự tương thích hoàn toàn.
Bác sĩ McKay

2
Tôi đã thực sự nghĩ về đối số nguồn mở, nhưng tôi không nghĩ đó là một vấn đề đủ lớn, khôn ngoan trong thế giới thực (cho dù tôi là người hâm mộ FOSS lớn đến mức nào). Cuộc tranh luận 'vì sự thương xót của một công ty duy nhất' dù sao cũng có liên quan có ý nghĩa.
tdammers

4

Câu trả lời đơn giản cho "Tại sao không có ứng dụng máy tính để bàn nào trong Flash" là bạn chỉ có thể viết chúng trong Adobe Air, nhưng dường như chỉ có vài người làm được.

Tôi tin rằng câu trả lời là mọi người muốn các ứng dụng web chứ không phải ứng dụng Flash hào nhoáng và họ muốn các ứng dụng web giống như tất cả các ứng dụng web khác mà họ sử dụng. Cá nhân tôi muốn có thể sử dụng Flashblocker và vẫn có đầy đủ chức năng của ứng dụng.


3

Đây là một hiệu ứng rất phổ biến trong ngành công nghiệp của chúng tôi.
Ví dụ: cá nhân tôi sử dụng haXe và triển khai mã máy khách của mình trên Flash Player, vì IMHO nó là nền tảng hỗ trợ web tốt nhất tôi có thể nhắm mục tiêu. Khi phần cuối C # kết thúc, tôi có thể sẽ kiểm tra xem Silverlight có đáng để sử dụng hay không, mặc dù cảm giác cá nhân của tôi là nó đã chết, trước khi nó thực sự cất cánh.

Rất hài lòng với lựa chọn ngôn ngữ của mình, một điều tôi thường tự hỏi mình là: Tại sao nhiều nhà phát triển web không sử dụng ngôn ngữ đa nền tảng, đa mô hình, biểu cảm, đa nền tảng?

Có nhiều lý do, nhưng chúng luôn giống nhau. Một hợp lệ là sở thích cá nhân. Nhưng thường thì nó dẫn đến sự thiếu hiểu biết hoặc miễn cưỡng đối với các công nghệ mới / thích hợp.
Khi nói đến Flash, tôi đã có nhiều tranh luận về lý do tại sao nó có vị trí của nó và tại sao nên sử dụng nó. Mọi người chủ yếu tranh luận, rằng toàn bộ quan điểm của Flash là tạo ra các trang web ưa thích tải theo thời gian và hoạt động khủng khiếp (và lan truyền rất nhiều thông tin sai lệch khác).
Trên thực tế, điều ngược lại là đúng và các ứng dụng như Aviary Phoenix hoặc Sliderocket và các trò chơi như KoyotlTanki Online đã chứng minh điều đó. Flash là một nền tảng trưởng thành để tạo ra trải nghiệm giống như máy tính để bàn trong trình duyệt.

Cuối cùng, có quá nhiều quyết định chiến lược được đưa ra bởi những người bất tài, những người thích theo xu hướng và tin tưởng một số blogger ưa thích hơn các nhà phát triển của họ. Và những người thực sự có rất nhiều ý tưởng sai trong đầu của họ.

Các công nghệ mới / thích hợp sẽ luôn đấu tranh để được chấp nhận, trừ khi chúng thực sự tạo ra bước đột phá. Ruby chẳng hạn đã thành công trong việc này thông qua Rails và sự cường điệu lớn xung quanh nó. Flash đã có một bước đột phá như vậy đối với các nhà thiết kế, bởi vì trong thập niên 90, mọi người nghĩ rằng chói tai là tốt và đó là nền tảng lan truyền rộng rãi đầu tiên cho phép thực hiện điều đó.
Mặc dù Flex, Flash chưa bao giờ thực sự có một bước đột phá như vậy đối với các nhà phát triển. Có thể do GWT , qooxdoo và rất nhiều khung triển khai trên HTML khác đủ tốt, đơn giản là không sử dụng Flex hoặc Flash, và có nhiều nhà phát triển Java và JavaScript hơn (rõ ràng các công ty thích chọn công nghệ có số lượng nhân viên tiềm năng cao ).

Ngày nay, bạn không cần phải viết trang web AJAX của mình. Bạn thực sự có thể không có bất kỳ hiểu biết về HTML và làm điều đó bằng ngôn ngữ bạn chọn.

Ngay bây giờ, HTML5 được quảng cáo và đẩy mạnh về phía trước và nhiều người suy luận về cái chết của Flash từ đó. Rất nhiều lý do tuyệt vời được đưa ra, tại sao HTML5 tốt hơn Flash. Điều có nhiều khả năng là, bạn sẽ có ngày càng nhiều tài nguyên, các trang web cồng kềnh được tạo bằng HTML5. Crap dựa trên tiêu chuẩn không tốt hơn crap dựa trên bên thứ 3.

Ngay bây giờ, có rất nhiều điều xảy ra. IPhone và các thiết bị tương tự khác đã tạo ra một thị trường khổng lồ, cách đây 4 năm. Và các tiêu chuẩn web cuối cùng đã được thúc đẩy bởi tất cả các công ty lớn theo cùng một hướng (mơ hồ).

Cá nhân, tôi chỉ hy vọng rằng tất cả sự khuấy động sẽ ổn định trong vòng một hoặc hai năm, rằng HTML5 sẽ ổn định, trưởng thành và lan rộng cho đến lúc đó, trong khi Apple hy vọng sẽ có lập trường ít chuyên quyền hơn và Flash Player trở nên nhanh hơn trên nền tảng di động. Và rằng một khi bước tiến lớn này được thực hiện, mọi người sẽ quay lại để chọn công cụ phù hợp cho công việc, giống như sau khi các cuộc chiến trình duyệt đã kết thúc. Đến bây giờ, có quá nhiều tiếng ồn để mọi người suy nghĩ rõ ràng.


3
Bật trình đọc màn hình, tắt màn hình của bạn và dùng thử. Nó vẫn hoạt động?
BillThor

1
"Tại sao không có nhiều nhà phát triển web sử dụng ngôn ngữ đa nền tảng, đa mô hình, biểu cảm, đa nền tảng?" - Ý bạn là, thích Javascript?
André Paramés

1
@BillThor: Như một vấn đề thực tế, điều này phụ thuộc vào việc thực hiện. Flash Player có thể giao tiếp với trình đọc màn hình . Không nhiều người chọn để tận dụng các khả năng này. Hoặc là vì họ không quan tâm, hoặc vì nó vô nghĩa. Tôi rất tiếc cho những người khiếm thị, tôi không thấy nhiều giá trị trong việc làm cho bất kỳ ứng dụng / trò chơi nào tôi liên kết có thể truy cập được cho trình đọc màn hình. Tôi cũng khá chắc chắn rằng bạn sẽ gặp khó khăn khi sử dụng Photoshop khi màn hình của bạn bị tắt.
back2dos

1
@BillThor: Rõ ràng, bạn đã không nhận được điểm cốt lõi của thông điệp của tôi: Mọi người nên quay lại sử dụng công cụ phù hợp cho công việc thay vì sử dụng những gì phổ biến. HTML là một công cụ tuyệt vời cho các ứng dụng có nhiều nội dung có thể được nắm bắt với ngữ nghĩa của nó. Ngoài ra, nó không phải là công cụ tốt nhất.
back2dos

1
@ back2dos: Không bỏ lỡ nó trong ít nhất. Nếu tôi sử dụng công cụ tốt nhất cho công việc cho mọi thứ, thì tôi sẽ sử dụng hàng tá công cụ, một số trong số chúng bị che khuất. Sau đó bảo trì trở nên vô cùng khó khăn. Thay vào đó, tôi sử dụng các công cụ mà những người khác trong nhóm có kinh nghiệm. Công cụ phù hợp cho một dự án không phải lúc nào cũng là một công cụ chuyên dụng.
BillThor

1

Các công nghệ đều khá non nớt. Chỉ cần nhìn vào bao nhiêu thay đổi đã xảy ra trong bất kỳ khối 5 năm. Với công nghệ di động / máy tính bảng, nó sẽ thay đổi một lần nữa.

Tôi nhìn vào nó như là một sự hợp nhất. Nó không chỉ là HTML / DOM hoặc plugin. Tôi đã thấy các tiện ích mở rộng HTML để truy cập các tính năng của thiết bị. Plug-in hỗ trợ cả khái niệm máy tính để bàn và web cùng với việc mang ý tưởng của riêng họ.

Tùy thuộc vào quan điểm của bạn, đây là một điều tốt hay xấu. Hiện tại, nhóm của tôi đang làm việc trong SilverLight (không dành cho web). Đó không phải là một công nghệ tồi. Bạn có thể xây dựng một số ứng dụng rất mạnh mẽ, rất hấp dẫn. Tuy nhiên, nó đi kèm với rất nhiều sự phức tạp so với những người tiền nhiệm của nó (.Net và có thể là Win32) vì bạn không thể làm nhiều như vậy với những công nghệ đó và kỳ vọng thấp hơn. Ngày nay, hầu hết các nhà phát triển viết bất kỳ ứng dụng nào thường cạnh tranh (kỳ vọng chứ không phải cạnh tranh thực tế) với các công nghệ máy tính để bàn, web và di động tốt nhất kết hợp (tốc độ, tính năng, tính hấp dẫn, khả năng sử dụng, ...)

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.