2012-05-18 33 views
6

Tôi là lập trình viên tương đối mới, nói chuyện với một đối tác anh ấy nói với tôi rằng trước AJAX, anh ấy sử dụng iframe để gửi dữ liệu và thay đổi nội dung (rõ ràng với sự trợ giúp của JavaScript).Tại sao AJAX trên iFrames?

tôi hiểu rằng cả hai đều là các kỹ thuật tương tự, nhưng tôi đã không tìm thấy một bài viết để mô tả đặc điểm của họ,

là gì ưu điểm của AJAX trong khung nội tuyến?

EDIT i didnt tìm thấy bất kỳ lời giải thích của kỹ thuật này, nhưng đối tác của tôi nói với tôi ông gửi dữ liệu trough một iframe ẩn và nộp iframe, âm thanh như chỉ là iframe phải được làm mới, nhưng tôi không bao giờ làm điều đó

+0

Iframe giúp bạn dễ dàng tải tệp lên như một phần của yêu cầu AJAX. Nếu không, họ không cung cấp nhiều lợi thế như vậy. – techfoobar

+0

@techfoobar ok nhưng, tôi muốn thấy một sự giải thích của cả hai kỹ thuật, có thể trong một số trường hợp là tốt hơn sử dụng Iframes – osdamv

+0

Lần cuối cùng tôi sử dụng một iFrame cho điều này là vào năm 2004! Giống như @techfoobar cho biết, nó giúp việc tải tệp lên dễ dàng hơn rất nhiều vì bài đăng của bạn sẽ đồng bộ, nhưng đối với những thứ khác như tải thông tin trên màn hình, AJAX thực hiện công việc tốt hơn nếu được triển khai chính xác. Với AJAX, bạn không phải đăng các trang đầy đủ để chỉ có một vài điều hiển thị trên màn hình chính của bạn và bạn không phải viết thêm mã để nhận các phần tử từ một tài liệu trong iFrame. – MilkyWayJoe

Trả lời

7
  1. Một lợi thế AJAX đã có thể đọc trạng thái/trạng thái của yêu cầu . Bạn cũng có quyền truy cập vào tiêu đề trang mà bạn không có với Iframe.
  2. Ajax có thể xử lý nhiều yêu cầu asynch. Đó là một chút phức tạp hơn với Iframe khi bạn cần tạo Iframe cho mỗi yêu cầu (và giữ theo dõi tất cả chúng để xóa chúng sau này) thay vì tái chế cùng một.
  3. Thư viện hiện có đầy đủ tính năng AJAX và có cơ sở hỗ trợ cộng đồng lớn hơn.
+0

Tôi nghĩ rằng những gì @ rob- sedgwick đã đề cập cũng cần lưu ý ở đây: Kiểu CSS của trang sẽ chỉ áp dụng cho nội dung được tải qua AJAX. Khi bạn tải nội dung qua iFrame, bạn phải bao gồm lại kiểu của mình ở đó .. –

2

Trong dữ liệu trải nghiệm của tôi được tải qua AJAX dễ thao tác hơn so với dữ liệu bên trong iFrame. AJAX cũng thực sự tốt cho việc tạo trải nghiệm người dùng tốt hơn. Tuy nhiên tôi không chắc chắn nếu tôi nhất thiết phải đặt iFrames và AJAX trong cùng một danh mục vì AJAX là nội dung không đồng bộ và iFrame thực sự chỉ là một trang khác đang được tải từ bên ngoài trang web của bạn.

Ngoài ra tôi có thể thấy iFraming tạo ra các rào cản SEO và tạo trải nghiệm người dùng kém. Thành thật mà nói nếu tôi có quyền truy cập vào nội dung tôi thích AJAX.

+1

Thông thường khung nội tuyến bị ẩn và, trước AJAX, thông thường sử dụng nó để truy xuất dữ liệu từ máy chủ mà không cần tải lại. Nội dung của khung nội tuyến đã được JavaScript nắm giữ trong trang chính. HTML được chèn vào DOM, thông qua JS, hoặc được thực thi dựa trên trang cha nếu nó là một khối JS. –

7
iframe 

là một chương trình cách riêng rẽ hai (hoặc nhiều hơn) các trang web trong một

ajax 

là một cách để merge hai (hoặc nhiều hơn) các trang web (hoặc dữ liệu mới) vào một

những lợi thế chính của Ajax mà tôi tìm thấy là;

  • CSS sẽ chuyển đến trang được gọi vào đó.
  • Cách truy xuất dữ liệu và cập nhật thông tin mới cho khách truy cập mà không cần làm mới trang.

Đề cập đến trang web này để sử dụng Ajax thông minh.

A'Google ngay lập tức và tìm kiếm gợi ý được thực hiện thông qua Ajax

3

Chỉ hai của tôi cent:

Tôi đồng ý với Kris ở trên rằng tôi sẽ không nói rằng họ có thể so sánh.Có trường hợp sử dụng mà tôi thấy iFrames dễ dàng hơn để làm việc với hơn AJAX và đó là nếu bạn cần gửi một biểu mẫu phức tạp đến một trang khác nhưng bạn không cần bất kỳ phản hồi nào - tuyến đường iframe đến nay là dễ nhất để viết mã.

Ngoài ra, AJAX, sử dụng phép ẩn dụ, hoạt động rất hữu ích. Nó sẽ xử lý nhiều yêu cầu, trạng thái của những yêu cầu đó và trao lại dữ liệu theo định dạng bạn cần.

0

Tôi chỉ muốn thêm điều này vì tôi không thấy trong bất kỳ câu trả lời nào.

Lý do để sử dụng Ajax chủ yếu là về kiểm soát, mà bạn nhận được rất nhiều. Những lý do này đã được đề cập ở trên.

Một nhược điểm nghiêm trọng của Ajax, mặc dù, đó là một bản sửa lỗi JS. JavaScript là một ngôn ngữ tuyệt vời, nhưng mọi người đã ném nó vào mọi vấn đề trong một thời gian, và những thứ có thể được tối ưu hóa nếu chúng được xây dựng trong trình duyệt, hiện đang được thực hiện chậm (so với các ngôn ngữ biên dịch) với JS.

iFrames là một ví dụ tuyệt vời về điều này. Chúng đại diện cho một trường hợp sử dụng cực kỳ phổ biến, muốn bao gồm một số html trong một số html khác. Thật không may, họ không phải là rất tuyệt vời ở đó, thường tạo ra đau đầu hơn bất cứ điều gì khác.

Nếu bạn muốn đưa nội dung nào đó vào trang web của bạn hoặc trang web của bạn không gây rối, iFrames rất tuyệt. Đối với trường hợp sử dụng phổ biến hơn bao gồm một số html ngẫu nhiên trong một số html khác, Ajax là tốt hơn.

Và đây là điểm tôi đang cố gắng thực hiện: điều này thật ngu ngốc. Không có lý do gì không nên có một cái gì đó giống như một iFrame hoạt động giống như Ajax. Nhưng, bằng cách nhảy lên tàu (như tất cả chúng ta đã làm) với Ajax, chúng ta không còn lựa chọn nào khác.

Lý do lớn nhất đây là vấn đề là JS không bao giờ có nghĩa là các khối xây dựng tuyệt đối của Internet. Hơn nữa, nó được sử dụng bởi khá nhiều trang web xung quanh để vi phạm quyền riêng tư của người dùng. Vì vậy, nếu bạn đang tìm kiếm một lý do chính đáng để sử dụng iFrames, đây là của tôi:

Thật tuyệt khi không cần JS. Nếu bạn có thể làm cho trang web của mình được cải thiện bởi JS thay vì phụ thuộc trên đó, đó là một thành tích khó kiếm được và trang web sẽ cảm thấy ít "hacky" hơn.

Dù sao, đó chỉ là đầu vào của tôi.

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