Xin kinh nghiệm áp dụng AngularJS vào thực tế

Trong DNH có ai làm về AngularJS không? Mình đang tìm hiểu về nó và thấy rất hay! Trước mình muốn tìm hiểu về MVC mà thấy khó quá, nhưng sau khi tìm hiều AngularJS thì cũng đã hiểu sơ sơ về mô hình MVC rồi. Mình nghe nói AngularJS mới phát triển gần đây, nó là một framework javascript, nó kết hợp vs Bootstrap để làm fron-end. Không biết ở VN mình nhiều cty ứng dụng cái này chưa nhỉ? Bạn nào có kinh nghiệm làm về AngularJS có thể chia sẻ mình một ít thông tin và kinh nghiệm của bạn thân khi làm về nó được không?

4 Likes

Trên DNH có mấy người rành về cái này lắm, chờ chút có người giúp kỹ hơn. AngularJS là js framework, khác với jQuery chỉ được coi là 1 library. Nó hỗ trợ MVC đến mức tất cả các thao tác của 1 trang web có thể chỉ cần diễn ra phía client :smiley: (nếu là web tĩnh). routing, bind data, save data, grid …

Thực ra thì sự ra đời của nó có nguyên do cả. Thông thường chúng ta xử lý hầu hết các business chương trình ở phía server side và chỉ trả về client result và 1 vài action cơ bản thì với js thuần + jQuery cũng đủ xử lý rồi.
Tuy nhiên điều gì sẽ xảy ra nếu business chính là nằm ở client và server chỉ là nơi lưu trữ dữ liệu?

1000 use cases tồn tại ở client??? bạn làm gì để quản lý nó ? thay vì viết tất cả các business vào 1 vài file js thì chia làm nhiều file hơn nữa??? vẫn không quản lý được là điều chắc chắn. Lúc này ta phải áp dụng các kỹ thuật lập trình hay còn gọi là các patterns như MVC để chia ra các khu vực các nhau rồi quản lý (chia để trị).
Đấy nó hay thế đấy. Thế thì hệ thống nào dùng AngularJS ? Các hệ thống muốn tiện lợi cho khách hàng và tốc độ cao thì cần phải viết nhiều business ở phía client, như học TA, thi TA trắc nghiệm …
hoặc là những chương trình như survey chỉ lưu lại các survey đã finish 100% chẳng hạn để hạn chế lưu trữ những tài liệu không cần thiết …
Các bạn khác đóng góp thêm về loại dự án sử dụng angularjs nhé :smiley:

Enjoy

11 Likes

Cảm ơn bạn nhiều! Mình có đọc qua trên w3s thì có phần nó lấy dữ liệu từ trang php. trang php lấy dữ liệu ra, bên trang html nó dùng AngularJS đọc dữ liệu, thấy rất hay!

Ngoài ra nó cũng hoạt động theo mô hình MVVM

  1. Model
  2. View
  3. View Model

Ủa mình đọc tài liệu thấy nó ghi là MVC mà bạn @khiemnvd. Mình chỉ biết nó khác biệt ở chỗ là nó đồng bộ hóa giữa View và Model.

AngularJS chuyên dùng để làm Single Page App giống cái này https://www.dsvn.vn

MVVM đúng đó :slight_smile:

đây, AngularJS đây

http://memo.edu.vn/

1 Like

bạn có thể tham khảo tại đây. Ngay dòng đầu tiên có nói

http://www.dotnettricks.io/Tutorial/angularjs/mvc

1 Like

Sao biết được nó dùng AngularJS vậy bạn? Bạn có thể giải thích cho mình biết thế nào là Single Page App không?

Single page app nó dạng như gmail, google drive, google +; bạn sẽ thấy nó không bao giờ tải lại trang mà bạn chỉ đứng ở một trang và sử dụng thôi.
Nếu nói sâu hơn về kiến trúc thì nó khác rất nhiều: Ở web thông thường, server sẽ quản lý dữ liệu, business logic và dựng html, client gần như chỉ đứng ngó lâu lâu có một số trang thì xài thêm ajax để load dữ liệu động. Còn ở SPA, server chỉ quản lý dữ liệu và html template, việc dựng html và một số business logic nhất định javascript client thực hiện.

1 Like

Vậy nếu làm web kiểu SPA chắc thấy nhanh lắm phải không bạn. Không phải load lại nhiều.

Uh, tốc độ tải sẽ nhanh hơn, nhưng client làm nhiều hơn nên nếu không tối ưu mã nguồn hoặc xử lý quá nhiều mà chậm thì người dùng sẽ thấy… lag lag, như google + chẳng hạn, không hiểu sao mình thấy khá lag.

1 Like

Chào bạn, theo mình thì angularjs thật sự là một framework rất mạnh, nếu bạn sử dụng nó thì code js rất nhẹ nhàng luôn, angularjs hoạt động dạng application single page, tức là hầu như dùng ajax để thay đổi data trong page mà ko cần refesh , nhưng trong angularjs cũng hỗ trợ route, bạn có thể thấy URL trên browse thay đổi y như request về server, bạn có thê đọc thêm cách bootstrap angularjs trong trang chủ của nó https://docs.angularjs.org/guide/bootstrap để thấy cách nó hoạt động, còn việc angular mà các bạn nói chậm mình nghĩ không phải là do nó xử lý toàn bộ business trên front-end code js đâu, vì như công ty mình làm thì front-end chỉ dùng ajax gọi về server , dưới back-end trả lại data dạng json, front-end chỉ việc bind lên html thôi,việc phân chia service , controller trong angular thì có mục đích của nó, như service thì dang singleton nên có thế inject vào bất cứ controller nào để sử dụng … cái này bạn có thể đọc thêm document của angular, theo mình angular chậm là do nó có cơ chế $watch() , $digest(), kiểu như nó listent biến thừ hai phía, vi dụ như bạn có một biến nếu bạn thay đổi giá trị trong javascript nó sẽ tự động thay đổi trên html, đó là cơ chế bind data của nó, nhưng mà với dữ liệu thông thường thì nó cũng không chậm lắm, chỉ trừ khi bạn load lên dom một list rất lớn lúc đó nó phải watch giá trị của quá nhiều biến nên sẽ làm giảm performance, lúc đó phải tính đễn chuyện tối ưu thôi.
Đây là website công ty mình đang build sử dụng angularjs bạn có thể tham khảo cách hoạt động của nó
https://www.zillable.com/
Sau khi bạn login thì toàn bộ chỉ là 1 page thôi nhé còn lại là dùng ajax hết đó, mặc dù bạn thấy trên URL có thay đổi nhưng dưới server cũng vẫn chỉ redirect tới page home thôi hi, nói thì dài dòng nhưng mà bạn coi cách hoạt động để hiểu rồi tự build một app sử dụng angularjs thì sẽ hiều được thôi, Hope userful for you :smile:

3 Likes

Cho hỏi DNH này có dùng AngularJS ko vại ? :smile: :smile:

Không, Discourse + EmberJS

1 Like

Gì chứ trang đấy mình ghét cực :)) ăn cắp ý tưởng, nội dung và làm lại cũng ko hay

Bên cty mình đang dùng Java EE + AngularJS

Nguyên tắc cơ bản là JavaEE là server RESTful
AngularJS dùng làm client.

1 Like

Làm SPA với Angular 1.x thì nó còn hơi lag khi truy cập trang trên mobile có cấu hình yếu. Từ phiên bản Angular 2 thì nó bắt đầu tối ưu hơn cho mobile.

Bên mình cần tuyển dụng lập trình viên Front-End với AngularJS.

Anh em nào có khả năng thì liên hệ mình qua email [email protected].
Hoặc nếu có bạn bè làm về AngularJS thì giới thiệu giúp mình.

Xin cám ơn.

nói như vậy là app single page hoạt động giống kiểu web service ,server trả về dữ liệu chứ ko phải là 1 page html

83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?