2012-06-10 26 views
10

Có một số công cụ phát triển web tuyệt vời giúp bạn dễ dàng phát triển cuộc sống của các nhà phát triển. Các ứng dụng như LiveReloadCodeKit là những ví dụ tuyệt vời.Cách LiveReload (và các ứng dụng tương tự khác) hoạt động về mặt kỹ thuật?

Tất cả những gì tôi quan tâm là cách làm cho trang web tải lại trực tiếp trong trình duyệt web (có thể là Chrome, Firefox hoặc bất kỳ thứ gì) từ bên trong khi thay đổi tệp được ghi vào ổ cứng.

Cách chúng thực sự làm điều đó? Có bất kỳ API nào mà các nhà cung cấp trình duyệt web trưng ra để thực hiện điều này không? hoặc tập lệnh phía máy chủ tùy chỉnh của nó được tiêm vào trang web (không thực sự được viết bởi nhà phát triển web) trước khi trình duyệt đạt đến trình duyệt và một số phép thuật Ajax xảy ra khi tệp được thay đổi trên ổ đĩa.

Tôi đang lên kế hoạch phát triển một cái gì đó như thế này bằng Python hoặc Vala (Linux) và .NET (Windows), vì vậy hãy cho tôi biết nếu có một số tài liệu sẵn có để thực hiện việc này.

Trả lời

1

Đây thường là (luôn luôn?) Dựa trên một khái niệm khá đơn giản - thường xuyên như vậy, một số trình kích hoạt mã máy khách yêu cầu tập lệnh máy chủ nếu tệp đã được cập nhật. Nếu, và chỉ khi, nó có, nó tải lại trang - hoặc, đối với một số trang web (nghĩ SO và một số trang mạng xã hội), nó chỉ tải thông tin mới và tải nó tại chỗ.

Đối với trường hợp bạn đang phát triển trong một hộp cát cục bộ, họ có thể tính thời gian nghe các tập tin OS 'thay đổi' thay vì phải có máy chủ có khả năng đáp ứng các yêu cầu AJAX được thiết lập. Hầu hết các hệ điều hành đều cung cấp các tín hiệu này - ví dụ, trên Linux, bạn có inotify. Nó xuất hiện từ trang web của họ mà LiveReload sử dụng một hệ thống như thế này - một phần của bộ phần mềm của họ là một bộ plugin trình duyệt, có lẽ cung cấp API Javascript cho các dịch vụ OS và điều chỉnh các quy tắc hộp cát trình duyệt để cho phép nó.

+0

Tôi có thể lấy tài liệu tóm tắt về cách thực hiện điều gì đó như thế này? – Kushal

+0

@Kush các API thông báo có xu hướng, AFAIK, có hệ điều hành khá cụ thể. Vì vậy, bạn sẽ phải tìm kiếm các tài liệu nền tảng có liên quan - hy vọng một người khác sẽ đến cùng với những người hiểu biết về các chi tiết cụ thể tốt hơn tôi. – lvc

3

Từ LiveReload FAQ:

Để giao tiếp với các trình duyệt của bạn, LiveReloads cần mã JavaScript vọng tiếp tục được tiêm vào các trang web của bạn. Có 3 cách để sắp xếp rằng:

  1. thể thêm một thẻ script vào mã HTML của bạn bằng tay, hoặc
  2. cài đặt một phần mở rộng trình duyệt (rằng, khi được kích hoạt, thêm thẻ script để các trang web truy cập trên bay) hoặc
  3. sử dụng plugin cho khung web của bạn (thêm thẻ tập lệnh khi đang di chuyển khi yêu cầu phân phối), hiện chỉ có sẵn cho Đường ray/Giá.

Ngoài ra, tôi biết câu hỏi này là cũ, nhưng đối với những người cũng đến đây tìm kiếm "livereload python", có một lớn LiveReload server written in python.

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