2008-10-10 30 views

Trả lời

130

Đây là một sai lầm phổ biến. Loại MIME cho javascript không được chuẩn hóa trong nhiều năm. Bây giờ là officially: "application/javascript".

Trình kích hoạt thực sự ở đây là hầu hết các trình duyệt sẽ không sử dụng thuộc tính đó, ít nhất không phải trong trường hợp của thẻ tập lệnh. Họ thực sự nhìn trộm bên trong gói và xác định loại cho chính họ.

Vì vậy, mấu chốt là các type = "text/javascript" không làm gì cả như xa như javascript là có liên quan, nhưng nó là một phần của spec cho cả HTML 4XHTML 1.0.

+32

Tôi có thể xác nhận rằng có

2

Trong thẻ tập lệnh, tôi sẽ sử dụng văn bản/javascript. Tuy nhiên, điều này xuất hiện trong đặc tả HTML 4.0.

http://www.w3.org/TR/REC-html40/interact/scripts.html

[EDIT] Funny như thế nào RFC rằng tiêu chuẩn về thi công/javascript là 2 tuổi, nhưng text/javascript vẫn còn phổ biến hơn. Đây có phải là trường hợp khác về chiến thắng tùy chỉnh theo tiêu chuẩn không? Nó cũng xuất hiện trong HTML5.

+0

văn bản/javascript vẫn được sử dụng vì cùng một lý do không thể sao chép hình ảnh PNG - tương thích với IE 5 và 6. –

+0

Và bởi vì trực giác nó có ý nghĩa hơn để gọi nó là văn bản/javascript. – AnthonyWJones

+0

Trực giác thay đổi. "application /"! = "binary /" – outis

20

Đây là trang đầu tiên tôi tìm thấy về chủ đề này với bất kỳ ý nghĩa nào về nó.

nghiên cứu tập thể của tôi gợi ý:

  1. text/javascript như Keparo tuyên bố phải được sử dụng trong HTML4 và xhtml1 nếu bạn muốn nó để xác nhận. Mặc dù các trình duyệt bỏ qua nó.
  2. application/javascript được mong đợi là loại MIME chính thức mới nếu mọi người đồng ý và khi mọi thứ bắt kịp.
  3. application/x-javascript (x có nghĩa là không chính thức) là tham chiếu MIME phía máy chủ hiện tại cho javascript.
  4. Mọi người đều hy vọng rằng như thường lệ, Microsoft sẽ quyết định làm điều gì đó hoàn toàn khác để gây nhầm lẫn hơn nữa và giải quyết vấn đề.

Tóm tắt: Hiện tại, nếu bạn muốn html/xhtml hoạt động trong MSIE và xác thực với W3C thì khai báo type="text/javascript". Nếu bạn muốn máy chủ web của bạn biết rằng bạn có nghĩa là javascript thì hãy sử dụng application/x-javascript.

+2

+1 để đề cập đến JS phía máy chủ. Tuy nhiên, bạn có một nguồn hoặc báo giá, ai sử dụng app/x-js ở phía máy chủ? – Boldewyn

+0

Apache httpd.conf sử dụng javascript MIME phía máy chủ để định cấu hình những thứ như: - - ForceType (Đối với các tệp không có hậu tố hoặc không chuẩn), - Bộ lọc đầu ra (như bộ lọc, gzip, nén và bất kỳ thứ gì khác cần ID kiểu dữ liệu theo MIME). Ngoài ra, Id đưa ra -1 cho bất kỳ ai sử dụng javascript phía máy chủ và lời khuyên: nghiêm túc và không ngại học hỏi. – ekerner

+0

Ví dụ yêu cầu SS javascript MIME khác là trường hợp bạn sử dụng kịch bản/chương trình giao diện cơ sở dữ liệu phía máy chủ để tự động tạo mã javascript của bạn trong khi điền các biến trong một cơ sở dữ liệu nào đó. Mã tạo phải khai báo 'Content-type: application/x-javascript' làm tiêu đề, nếu không phần mềm máy chủ - và thậm chí cả phần mềm máy khách (nếu không khai báo rõ ràng) - sẽ không có cách nhận dạng dữ liệu dưới dạng javascript (As trong bình luận trước của tôi). – ekerner

1

RFC chính thức xác định Loại MIME Javascript là RFC4329.

  
7. JavaScript Media Types 

7.1. text/javascript (obsolete) 

    Type name:    text 
    Subtype name:   javascript 
    Required parameters:  none 
    Optional parameters:  charset, see section 4.1. 
    Encoding considerations: 
     The same as the considerations in section 3.1 of [RFC3023]. 

    Security considerations: See section 5. 
    Interoperability considerations: 
     None, except as noted in other sections of this document. 

    Published specification: [JS15] 
    Applications which use this media type: 
     Script interpreters as discussed in this document. 

    Additional information: 

     Magic number(s):    n/a 
     File extension(s):   .js 
     Macintosh File Type Code(s): TEXT 

    Person & email address to contact for further information: 
     See Author's Address section. 

    Intended usage:   OBSOLETE 
    Restrictions on usage: n/a 
    Author:     See Author's Address section. 
    Change controller:  The IESG. 

7.2. application/javascript 

    Type name:    application 
    Subtype name:   javascript 
    Required parameters:  none 
    Optional parameters:  charset, see section 4.1. 
    Encoding considerations: 
     The same as the considerations in section 3.2 of [RFC3023]. 

    Security considerations: See section 5. 
    Interoperability considerations: 
     None, except as noted in other sections of this document. 

    Published specification: [JS15] 
    Applications which use this media type: 
     Script interpreters as discussed in this document. 

    Additional information: 

     Magic number(s):    n/a 
     File extension(s):   .js 
     Macintosh File Type Code(s): TEXT 

    Person & email address to contact for further information: 
     See Author's Address section. 

    Intended usage:   COMMON 
    Restrictions on usage: n/a 
    Author:     See Author's Address section. 
    Change controller:  The IESG. 
+3

bạn có thể đã viết những gì được nói trong RFC – brunoais

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