2009-05-18 23 views
80

Toàn bộ câu hỏi phù hợp với tiêu đề. Và để thêm một số bối cảnh: Tôi không hỏi điều gì là tốt nhất theo những gì các thông số kỹ thuật đang nói, nhưng thay vì những gì làm việc tốt nhất cho sự pha trộn của các trình duyệt được triển khai hiện nay.Khi phục vụ các tệp JavaScript, tốt hơn là nên sử dụng ứng dụng/javascript hoặc ứng dụng/x-javascript

Một số điểm dữ liệu:

  • Google sử dụng text/javascript cho JS sử dụng trên trang chủ của họ.
  • Google sử dụng text/javascript trên Google Documents.
  • Google sử dụng application/x-javascript để phân phối các tệp JavaScript với Ajax libraries service của chúng.
  • Yahoo sử dụng application/x-javascript để phục vụ JS của họ.
  • Yahoo sử dụng application/x-javascript cho JavaScript được phân phối trên trang chủ của họ.
+4

Vui nhộn. Theo Tim, cả hai người chơi lớn đều sai (liên quan đến tiêu chuẩn), điều này có thể chỉ có nghĩa là các trình duyệt có khả năng chịu đựng (không có tin tức lớn ở đây) và nó có thể không thành vấn đề. – PhiLho

+1

dupe có thể: [Javascript MIME Type] (http://stackoverflow.com/questions/4101394/javascript-mime-type) – Bergi

Trả lời

99
  • text/javascript là lỗi thời
  • application/x-javascript đã thử nghiệm trong khi quyết định chuyển sang ...
  • application/javascript là kiểu MIME chính thức hiện nay cho JS

Điều đó nói rằng, trình duyệt thường bỏ qua các content-type gửi bởi máy chủ và chú ý nhiều đến thuộc tính type (và một số có thể chưa công nhận application/javascript).

Tôi đề nghị:

  • Sử dụng ứng dụng/javascript trên máy chủ
  • Sử dụng HTML 5 và bỏ qua type thuộc tính từ các yếu tố kịch bản
+3

Điều này câu hỏi từ vài tháng trước nói ngược lại. Có người nhầm lẫn :) "quyền của Kelly, các trình duyệt có xu hướng tin tưởng loại MIME được gửi với tiêu đề phản hồi trên thuộc tính loại của thẻ tập lệnh" http://stackoverflow.com/questions/189850/what-is- the-javascript-mime-type-what-thuộc-in-the-type-thuộc tính-of-a-script/189877 # 189877 – Marco

+0

Tôi không tin câu trả lời này là chính xác. Cả Google và Yahoo đều không sử dụng phương pháp này và tôi có xu hướng tin tưởng chúng trên một dấu kiểm màu lục. – cmeub

+6

Ồ không! Các tổ chức lớn, nguyên khối, chậm phải đúng! Thông số kỹ thuật phải sai! Narghh. Tôi sẽ tiếp tục tin tưởng đặc điểm kỹ thuật và kinh nghiệm của riêng tôi về các công ty lớn (chậm), ngay cả khi một trong số họ từng sử dụng tôi. – Quentin

13

Trong hầu hết các trường hợp, loại mime mà máy chủ gửi sẽ không tạo ra sự khác biệt thực tế nào. Tôi sẽ đi với application/javascript, cũng được đề xuất bởi một RFC.

+11

là rfc 4329: http://www.ietf.org/rfc/rfc4329.txt – Christoph

6

Nó đã là "văn bản/javascript" nhưng điều này đã lỗi thời (xem IANA List) và bây giờ nó phải là "ứng dụng/javascript" (xem another IANA List).

5

Nếu bạn chọn để sử dụng ứng dụng/javascript cho js trong các trang của bạn, IE7 và IE8 sẽ không chạy tập lệnh của bạn! Đổ lỗi cho Microsoft tất cả các bạn muốn, nhưng nếu bạn muốn hầu hết mọi người chạy các trang của bạn sử dụng văn bản/javascript.

+2

Khi bạn nói rằng "ứng dụng/javascript" sẽ không hoạt động, bạn có nghĩa là nếu được đặt làm loại nội dung trên phản hồi HTTP hoặc là thuộc tính "loại" của thẻ tập lệnh không? Câu hỏi ban đầu là về loại nội dung trên phản hồi HTTP. Dựa trên các câu trả lời khác, có vẻ như chỉ có giá trị của thuộc tính "type" trên các thẻ script sẽ tạo ra sự khác biệt trong IE. –

5

Nó từng là language="javacript". Sau đó, nó đổi thành type="text/javascript". Bây giờ nó là type="application/javacript". Ok đây là nhận được câm. Một số trình duyệt cũ hơn không nhận dạng được application/javascript mới, nhưng vẫn nhận ra số text/javascript cũ hơn. Tôi có kế hoạch tiếp tục sử dụng điều này, nếu không tôi sẽ lãng phí thời gian của tôi cố gắng thay đổi MỌI ví dụ của text/javascript thành application/javascript.
Bây giờ một số ngày ngược lại có thể đúng. Một số ngày các trình duyệt mới nhất có thể từ chối kỹ thuật cũ để tuân thủ nghiêm ngặt tiêu chuẩn.
Nhưng cho đến khi mọi người xem trang web của tôi bắt đầu phàn nàn rằng "kể từ khi nâng cấp trình duyệt của tôi, khoảng 50% trang web của bạn đã biến mất", tôi không có động cơ để thay đổi mã trong trang web của mình.

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