2008-08-22 38 views
20

Chúng tôi đã có một trang với một tấn jQuery (khoảng 2000 dòng) mà chúng tôi muốn cắt giảm b/c nó là một cơn ác mộng bảo trì, và nó có thể dễ dàng hơn để duy trì trên máy chủ. Chúng tôi đã nghĩ về việc sử dụng UpdatePanel cho việc này. Tuy nhiên, chúng tôi không thích thực tế là UpdatePanel đang gửi toàn bộ trang trở lại máy chủ.jQuery AJAX vs UpdatePanel

Trả lời

40

Không chuyển sang UpdatePanels. Sau khi đến từ jQuery, the drop in performance sẽ không thể thực hiện được. Đặc biệt trên một trang phức tạp như âm thanh của bạn.

Nếu bạn có 2.000 dòng mã JavaScript, giải pháp là để cấu trúc lại mã đó. Nếu bạn đặt 2.000 dòng mã C# trong một tệp, sẽ rất khó để duy trì. Điều đó sẽ khó quản lý hiệu quả với bất kỳ ngôn ngữ hoặc công cụ nào.

Nếu bạn đang sử dụng 3,5 SP1, bạn có thể sử dụng tập lệnh mới của ScriptManager kết hợp để tách JavaScript của bạn thành nhiều tệp mà không bị phạt. Bằng cách đó, bạn có thể phân vùng hợp lý mã của bạn giống như bạn làm với mã phía máy chủ.

6

Tôi không biết nếu có cách nào để tối ưu hóa UpdatePanels, nhưng công ty của tôi đã nhận thấy hiệu suất của nó khá kém. jQuery nhanh hơn nhiều so với bất kỳ thứ gì.

Có thể có nhiều độ trễ giữa thời gian khi UpdatePanel kích hoạt cập nhật và khi UpdatePanel thực sự cập nhật trang.

Lý do duy nhất chúng tôi sử dụng UpdatePanels là vì sự dễ dàng phát triển. Hầu như không có gì cần phải được thực hiện để làm cho họ làm việc.

10

Xin đừng đặt bản thân vào thế giới đau đớn đó. Thay vào đó, hãy sử dụng UFRAME nhanh hơn rất nhiều và được triển khai trong jQuery.

Bây giờ, để quản lý 2000 dòng mã Javascript tôi khuyên bạn nên tách mã trong các tệp khác nhau và thiết lập quy trình xây dựng của bạn để kết hợp chúng bằng JSMin hoặc Yahoo Compressor thành các đoạn.

+1

Ngoài ra liên kết giờ đã chết ... – apaul

3

Sử dụng UpdatePanel buộc bạn sử dụng ScriptManager để thêm tấn tập lệnh trong trang web của bạn. UpdatePanel cung cấp cho bạn một phần postback và không thực sự ajax. Nếu bạn chỉ chạy trên mạng LAN chứ không phải internet, nhưng nếu mục tiêu của bạn là internet, hãy thử refractoring mã của bạn và nén chúng bằng một số công cụ trước khi xuất bản trên trang web