Những cải tiến cho JavaScrip trong Joomla

Đăng ngày: 19 Tháng 9 2013
Đánh giá bài này
(1 Bình chọn)
Joomla JavaScrip, Fix It's Right? Joomla JavaScrip, Fix It's Right?

Hiện nay, Joomla CMS chủ yếu được thực hiện bằng cách sử dụng PHP, là nơi mà JavaScript(JS) và CSS chỉ đóng góp phần nhỏ như công nghệ hỗ trợ. Joomla chủ yếu sử dụng JS để cải thiện khả năng sử dụng bằng cách cung cấp các tương tác linh động và responsiveness, nhưng nó có thực hiện tốt không? Chúng ta có thể cải thiện nó không? Những công nghệ tiến bộ mới liên quan đến JS là gì? Chúng có thể sử dụng trong Joomla hay không? Bài viết dưới đây sẽ trả lời những câu hỏi trên và sẽ giúp bạn cải thiện việc sử dụng JS trong Joomla CMS.

Hiện tại những thành phần chính nào của JavaScrip được sử dụng

Joomla sử dụng JS trong suốt CMS cùng với các code thông thường, cũng như trong các thư viện giống như jQuerry và MoTools. Code JS không chỉ có mặt trong các tập tin ".js" mà còn trong cả các code PHP, điều này sẽ tính tổng chi phí duy trì cho cả 2 định dạng đó.Việc sử dụng thư viện JS không đồng đều, và một số các thư viện đặc biệt hơn so với những cái khác làm giảm đáng kể việc sử dụng lại các thư viện.

Hầu hết chúng được kết hợp chặt chẽ với các yếu tố DOM, và một số thậm chí còn gắn liền với DOM ngay lập tức khi nó sẵn sàng. Điều này trở thành một vấn đề khi một trang đơn bao gồm các chế độ view phụ thuộc vào các scripts khác nhau, nơi một script đơn phụ thuộc vào một cái view đặc biệt được áp dụng trên toàn thể các view khác.

Trong Joomla, JS phụ thuộc vào việc tải về sử dụng các scripts từ phía máy chủ( ví dụ như JHtml::_('jquery.framework')) và các tham chiếu trực tiếp các tập tin JS mà cần phải được thống nhất trên CMS. Có những CMS không được sử dụng, các script xung đột nhau, và các tham chiếu trược tiếp, các script xử lý có thể vượt quá phạm vi của nó, và thú vị hơn là những phần đã lỗi thời cần phải chú ý. Do đó nó có thể thực hiện được không? Câu trả lời là " Không" và có rất nhiều nơi cho Joomla cải thiện và sử dụng JS, điều này tôi se thảo luận ở phần sau.

Chúng ta có thể cải thiện không?

Trong Joomla, một trong những mối quan tâm hàng đầu là tìm ra cách giải quyết để đưa JS vào CMS và các thành phần của nó. Mặc dù cấu trúc và cách giải quyết có khi là nói đến các module và các thành phần phía máy chủ, điều này khá quan trọng nên được trao cho JS vì nó sẽ trở thành một thách thức lớn trong việc quản lý các script trong tương lai gần. Một yếu tố quan trọng là phải loại bỏ các code JS không sử dụng, cập nhật các thư viện đã lỗi thời, và loại bỏ hoặc sandbox các thư viện xung đột nhau từ CMS (ví dụ như loại bỏ các MoTools).

Hiện nay trong Joomla, có một số JS toàn cục thực thi trên các thành phần khác nhau và các view, nên cần phải được cải thiện về phạm vi khả năng của mình, nếu không nó sẽ trở thành nơi duy trì cho các xung đột JS. Quan trọng hơn, nó sẽ là tốt hơn để sử dụng style JS chung cho việc triển khai JS tùy chỉnh trên CMS.

Công nghệ tiên tiến mới

Trong vài năm qua , việc sử dụng JS trong các trang web đã trải qua một sự thay đổi triệt để. Hiện nay nhiều JS có khả năng mang đến các trải nghiệm tương ứng như dùng máy tính để bàn. Nhiều JS framework như backbone.js, durandal.js, angular.js ... được đặt nền tảng để quản lý và phát triển JS code có thể phát triển trên quy mô lớn. Có nhiều nền tảng dựa trên các mô hình khác nhau như MVC, MVVP, MVP và có một số nữa là lai giữa nhiều mô hình với nhau. Có nhiều cái thông dụng phải tải về từ thư viện như require.js đã được đưa vào scoped và quản lý bằng JS, bỏ qua việc phải phụ thuộc vào hệ thống. Một lĩnh vực khá thú vị khác là sử dụng ràng buộc hai chiều knockout MVVMview của JS khi sử dụng MVVM như hình mẫuJoomla JavaScrip, Fix It's Right?( ví dụ như knockout.js được hiển thụ như hình vẽ), làm giảm đáng kể số lượng JS cần thiết để thực hiện view các thành phần với trạng thái trung gian so với các trang web truyền thống. Điều này trực tiếp ảnh hưởng đến việc cải thiện khả năng sử dụng và đáp ứng của các ứng dụng web. Như chúng ta đã biết, có cách khác là sử dụng các ứng dụng của HTML5 sẽ chạy hiệu quả hơn trên các trình duyệt mới. So với các tiến bộ mới trong JS, trong bài viết này chỉ có một số ít được đưa ra thảo luận.

Chúng ta có thể sử dụng những gì trong Joomla?

Trong Joomla, thư viện JS như MooTools hay jQuerry hỗ trợ một phần code cho các MooTool class object hoặc các jQuery plugin nhưng lại thiếu cách quản lý. Để giải quyết vấn đề này, Backbone.js hoặc Angular.js được sử dụng như nền tảng để tổ chức và quản lý JS code.

Joomla JavaScrip, Fix It's Right?

Hình vẽ bên tay trái cho thấy JS hiện nay được tổ chức trong CMS với nội tuyến và in-view JS cùng tài liệu tham khảo JS bên ngoài.
Hình bên phải cho thấy một mô hình dùng để quản lý code giữa sử dụng lại các thư viện JS bên ngoài và đường dẫn tới JS của các thành phần( cấu trúc phụ thuộc vào các mô hình như MVC, MVVM...) được liên kết lỏng lẻo với các thành phần thực tế.

Khả năng tiếp theo đó là cơ chế ủy quyền xử lý phụ thuộc từ "phía máy chủ đã bao gồm kỹ thuật scrip" sang JS, có thể thay thế bằng một require.js như thư viện. Điều này giảm bớt sự phụ thuộc của code phía máy chủ vào JS, có thể được quản lý tốt hơn bằng cách sử dụng JS của chính nó. Sơ đồ dưới đây minh họa sự khác biệt giữa hai phương pháp.

 Joomla JavaScrip, Fix It's Right?

Một cải tiến quan trọng là sử dụng Model View Binding, dùng một framework như knockout.js sẽ làm giảm số lượng JS cần thiết để thực hiện các view components cũng như kết hợp view từ mẫu được rộng hơn. Ở đây tôi đã cố tình không nói về style Single Page Applicattion (SPA)kể từ khi Joomla đã có một chặng đường dài để trở thành một SPA với cấu trúc như hiện nay.

Kết luận

Hiện nay Joomla được phát triển hơn với những cải tiến mới nhất của nó như môi trường giao diện người dùng với Bootstrap và độ chắc chắn của nó. Nhưng hiện tại việc sử dụng JS trong CMS không có khả năng để phát triển, và cũng càng ngày càng khó khăn hơn vì nó đòi hỏi một code quản lý tốt hơn. Dựa trên tất cả các mối quan tâm, chúng ta cần phải có thêm những cải tiến mới về JS để JS không trở thành cản trở cho việc phát triển Joomla trong tương lai.

Xuân Trung

Gửi bình luận

Hãy nhập đầy đủ các thông tin yêu cầu trong ô có dấu (*). Không được phép sử dụng mã HTML.

LIKE để ủng hộ bạn nhé!

 

Tham gia diễn đàn seo hàng đầu Việt Nam

Has no content to show!