2010-04-06 35 views
10

Như cuộc gọi jquery ajax làm cho cuộc sống thực sự mát mẻ mà không cần làm mới trang ... Nhưng vẫn quan tâm để biết một số ưu điểm và nhược điểm của việc thực hiện cuộc gọi ajax với jquery ....những lợi thế và bất lợi của việc thực hiện cuộc gọi ajax bằng cách sử dụng jquery là gì?

Vì tôi đang sử dụng cuộc gọi ajax cho tất cả Thêm tôi, Edit, Delete hoạt động tại trang web của tôi nó hoạt động khá tốt như bây giờ ... Vẫn biết về những nhược điểm sẽ làm cho cuộc sống dễ dàng hơn trong việc triển khai ....

+0

Bạn có yêu cầu về * ajax với jQuery * Cụ thể, hoặc ajax nói chung? – bzlm

+0

'ajax với jQuery' chỉ .. –

Trả lời

8

Việc sử dụng tốt nhất của AJAX là nơi nó được sử dụng để gửi trọng tải nhỏ. Đây là một ví dụ đơn giản.

Tôi tải một trang chứa thông tin về chứng khoán. Nó có đồ thị, biểu đồ, thông tin công ty và nó cũng hiển thị giá cổ phiếu. Cứ sau 30 giây, tôi thực hiện một yêu cầu AJAX nhận giá cổ phiếu được cập nhật và thay đổi nó trên trang.

Nếu không có AJAX, tôi có thể quyết định làm mới toàn bộ trang sau mỗi 30 giây, nhưng với AJAX, tôi có thể thực hiện một yêu cầu nhẹ để có được một chút thông tin tôi cần.

Sử dụng AJAX để gửi biểu mẫu không phải lúc nào cũng là đặt cược tốt nhất. Bên cạnh việc không thực sự mang lại cho bạn một lợi thế rõ ràng khi đăng biểu mẫu thông thường, bạn phá vỡ các quy ước như lịch sử trình duyệt (mặc dù một số trình duyệt hiện bao gồm "trạng thái" JavaScript như các trang trong lịch sử).

Khi sử dụng AJAX, bạn cần xử lý nhiệm vụ thông báo cho người dùng nếu có sự cố. Bạn có thể làm điều này với jQuery bằng cách xác định điều gì sẽ xảy ra do lỗi, nhưng nhiều người quên làm điều này và người dùng cuối không biết gì về vấn đề này.

Các vấn đề khác cần lưu ý là bất kỳ lỗi JavaScript nào có thể ngăn sự kiện của bạn kích hoạt - hoặc nếu JavaScript bị tắt, trong cả hai trường hợp đảm bảo rằng biểu mẫu có thể gửi bình thường trước khi bạn thêm mã AJAX là tùy chọn an toàn nhất.

7

PRO:

trong nhiều trường hợp , các trang liên quan trên một trang web bao gồm nhiều nội dung phổ biến giữa chúng. Sử dụng các phương pháp truyền thống, nội dung đó sẽ phải được tải lại trên mọi yêu cầu. Tuy nhiên, bằng cách sử dụng Ajax, một ứng dụng web chỉ có thể yêu cầu nội dung cần được cập nhật, do đó làm giảm đáng kể thời gian sử dụng băng thông và thời gian tải.

Việc sử dụng các yêu cầu không đồng bộ cho phép giao diện người dùng trình duyệt web của khách hàng tương tác hơn và phản hồi nhanh chóng các yếu tố đầu vào và các phần của trang cũng có thể được tải lại riêng lẻ. Người dùng có thể cảm nhận ứng dụng nhanh hơn hoặc đáp ứng nhanh hơn, ngay cả khi ứng dụng không thay đổi ở phía máy chủ.

Việc sử dụng Ajax có thể giảm kết nối với máy chủ, vì các tập lệnh và bảng định kiểu chỉ phải được yêu cầu một lần. [12]

Trạng thái có thể được duy trì trên toàn bộ trang web. Biến JavaScript sẽ vẫn tồn tại vì trang vùng chứa chính không cần tải lại.

CON:

> Do tính chất năng động của họ, giao diện Ajax thường khó khăn hơn để phát triển khi so sánh với các trang tĩnh.

Trang được tạo động bằng cách sử dụng các yêu cầu Ajax liên tiếp không tự động đăng ký với công cụ lịch sử của trình duyệt, do đó, nhấp vào nút "quay lại" của trình duyệt có thể không trả lại người dùng về trạng thái trước đó của trang đã bật Ajax. họ đến trang đầy đủ cuối cùng đã truy cập trước đó. Cách giải quyết bao gồm việc sử dụng các IFrame vô hình để kích hoạt các thay đổi trong lịch sử của trình duyệt và thay đổi phần neo của URL (theo sau #) khi Ajax chạy và giám sát nó để thay đổi.

Cập nhật trang web động cũng khiến người dùng khó đánh dấu một trạng thái cụ thể của ứng dụng. Các giải pháp cho vấn đề này tồn tại, nhiều trong số đó sử dụng mã định danh đoạn URL (phần URL sau '#') để theo dõi và cho phép người dùng quay trở lại, ứng dụng ở trạng thái đã cho. Vì hầu hết các trình thu thập dữ liệu web không thực thi mã JavaScript, các ứng dụng web có thể lập chỉ mục công khai phải cung cấp phương tiện thay thế truy cập nội dung thường được truy xuất bằng Ajax, cho phép các công cụ tìm kiếm lập chỉ mục nó.

Bất kỳ người dùng nào có trình duyệt không hỗ trợ JavaScript hoặc XMLHttpRequest hoặc chỉ tắt chức năng này, sẽ không thể sử dụng đúng các trang phụ thuộc vào Ajax. Tương tự, các thiết bị như điện thoại di động, PDA và trình đọc màn hình có thể không hỗ trợ các công nghệ được yêu cầu. Trình đọc màn hình có thể sử dụng Ajax có thể vẫn không thể đọc chính xác nội dung được tạo động. Cách duy nhất để cho phép người dùng thực hiện chức năng là quay lại các phương thức không phải JavaScript. Điều này có thể đạt được bằng cách đảm bảo các liên kết và biểu mẫu có thể được giải quyết đúng và không chỉ dựa vào Ajax. Trong JavaScript, việc gửi biểu mẫu có thể được tạm dừng với "return false".

Chính sách nguồn gốc giống nhau ngăn không cho một số kỹ thuật Ajax được sử dụng trên các tên miền, mặc dù W3C có bản nháp của đối tượng XMLHttpRequest có thể bật chức năng này.

Giống như các công nghệ web khác, Ajax có bộ lỗ hổng riêng mà nhà phát triển phải giải quyết. Các nhà phát triển quen thuộc với các công nghệ web khác có thể phải học các phương pháp mã hóa và thử nghiệm mới để viết các ứng dụng Ajax an toàn.

Giao diện được hỗ trợ Ajax có thể làm tăng đáng kể số lượng yêu cầu do người dùng tạo tới máy chủ web và back-end của chúng (cơ sở dữ liệu hoặc khác). Điều này có thể dẫn đến thời gian phản hồi lâu hơn và/hoặc nhu cầu phần cứng bổ sung.

wikipedia.org

+1

Tất cả những âm thanh như lợi thế ... – mpen

5

Vâng, jAndy dường như có lợi thế đóng đinh xuống, và bạn dường như nhận thức được những lợi thế đã có, hoặc bạn sẽ không sử dụng nó.

Nhược điểm là nó sẽ nhấc nút quay lại của trình duyệt nếu bạn đang tải toàn bộ trang (có, điều này cũng có thể được khắc phục thông qua một số thuật sĩ JS khác). Nhưng nếu toàn bộ trang web của bạn dựa trên ajax, thì nó có thể sẽ không hoạt động với JS bị vô hiệu hóa. Ngoài ra, nó không tạo ra các URL rất đẹp. Nếu bạn muốn liên kết bạn của bạn với một trang cụ thể trong một trang web chuyên sâu và giả sử bạn đã thực hiện thuật sĩ JS của mình để điều này thực sự có thể (sửa đổi URL sau ký tự #), nó vẫn phải tải chính trang đầu tiên, và sau đó chờ đợi cho JS để kick trong trước khi nó có thể ajax-tải trong nội dung bạn đang thực sự quan tâm đến.Tôi thấy điều này thực sự mang lại cho chậm hơn thời gian phản ứng cảm nhận, mà tôi không thích ở tất cả. Tôi thích ajax, nhưng tôi không thích nó cho các công cụ toàn trang.

2

Lịch sử lâu dài của các trận đánh giữa trình duyệt và đặc điểm kỹ thuật kết thúc trong mớ hỗn độn thực sự. Chúng tôi là nhà phát triển hiểu nó khi chúng tôi nhận ra rằng chúng tôi đang dành nhiều thời gian giải quyết các vấn đề cụ thể của trình duyệt chéo thay vì giải quyết logic/vấn đề kinh doanh lập trình.

ve

  1. Không có trình duyệt chéo đau
  2. U có thể tin tưởng rằng nhà phát triển tốt đã dành có thời gian và năng lượng làm cho thư viện
  3. U có thể tập trung hơn vào vấn đề thực tế và không phải trên tác dụng phụ
  4. API là tốt. Nếu ai đó nói với nhà phát triển UI rằng ajax, HTTP, JavaScrtip bla bla bla ........ Chức năng đơn giản của OFFFF luôn là Ajax.call tuyệt vời (url, callbackfunction, param). Đó là tất cả những gì chúng tôi đang tìm kiếm hầu hết thời gian.
  5. lớn tiết kiệm thời gian :) và u có thể thưởng thức các bên không làm việc đêm khuya

ve

  1. U sẽ được chơi trên bề mặt nhẵn và da tiết kiệm từ đau đầu đó là tốt cho chúng ta như phần mềm kỹ sư
  2. Nếu bạn sử dụng một số hồ sơ, bạn sẽ tìm thấy vài chục cuộc gọi được thực hiện bên trong chức năng đó để thực hiện những việc sử dụng thư viện mà tiêu thụ vài MILLISECONDS. nhưng đây không thực sự là một vấn đề lớn khi xem xét thời gian chúng tôi đã lưu trong quá trình phát triển
  3. Bạn phải tin tưởng vào thư viện về những gì họ nói. Vì vậy, tôi sẽ đề nghị để dính vào những người tốt chỉ. Và vâng u r bằng một trong những tốt nhất

Hy vọng rằng sẽ giúp,

Các vấn đề liên quan