Seluruh pertanyaan cocok dengan judulnya. Dan untuk menambahkan beberapa konteks: Saya tidak bertanya apa yang terbaik menurut spesifikasi, melainkan apa yang paling berhasil mengingat campuran browser yang diterapkan saat ini.
Beberapa poin data:
- Google menggunakan
text/javascript
JS yang digunakan di beranda mereka. - Google menggunakan
text/javascript
di Google Docs. - Google menggunakan
application/x-javascript
untuk menyajikan file JavaScript dengan layanan perpustakaan Ajax mereka . - Yahoo digunakan
application/x-javascript
untuk melayani JS mereka. - Yahoo menggunakan
application/x-javascript
JavaScript yang disajikan di halaman beranda mereka.
javascript
http
content-type
avernet
sumber
sumber
Jawaban:
text/javascript
sudah usangapplication/x-javascript
masih eksperimental saat memutuskan untuk pindah ke…application/javascript
adalah tipe MIME resmi saat ini untuk JSMeskipun demikian , browser sering mengabaikan yang
content-type
dikirim oleh server dan sangat memperhatikantype
atributnya (dan beberapa mungkin belum mengenaliapplication/javascript
).Rekomendasi saya:
type
atribut dari elemen skripNB: spesifikasi HTML bertentangan dengan standar MIME, dan ada upaya untuk mengubahnya kembali
text/javascript
sehingga dapat berubah di masa mendatang.sumber
type
atribut, sehingga mengabaikanContent-type
perilaku yang benar.application/javascript
sehingga menentukannya akan menyebabkan mereka mengabaikan skrip. Agen pengguna tidak seharusnya mengabaikan Content-Type. Atribut type memberi tahu mereka apa yang diharapkan. Jika mereka tidak mendukung, mereka tidak perlu repot-repot memintanya. Jika server kemudian mengatakan itu adalah sesuatu yang berbeda, mereka harus melanjutkannya daripada apa yang dikatakan HTML (setidaknya menurut HTTP, Anda mungkin melihat spesifikasi yang berbeda, Anda tidak memberikan tautan apa pun).script
elemen, yang saya tautkan . Bacaan saya tentang bagian itu berbeda dari apa yang Anda gambarkan; tampaknya sangat mementingkantype
atribut dan tidak menyebutkan memeriksaContent-Type
, kecuali untuk menentukan pengkodean karakter. Saya setuju bahwa tampaknya akan bijaksana bagi agen pengguna untuk memverifikasi bahwa Jenis Konten cocok dengan yang diharapkan, tetapi saya belum menemukan apa pun dalam spesifikasi HTML yang memerlukan atau bahkan merekomendasikan untuk melakukan itu.Dalam kebanyakan situasi, jenis pantomim yang dikirim server tidak membuat perbedaan praktis. Saya akan menggunakan application / javascript , yang juga direkomendasikan oleh RFC.
sumber
Jika Anda memilih untuk menggunakan application / javascript untuk js di halaman Anda, IE7 dan IE8 tidak akan menjalankan skrip Anda! Salahkan Microsoft semua yang Anda inginkan, tetapi jika Anda ingin kebanyakan orang menjalankan halaman Anda, gunakan teks / javascript.
sumber
Dulu
language="javacript"
. Kemudian berubah menjaditype="text/javascript"
. Sekarangtype="application/javacript"
. Oke, ini semakin bodoh. Beberapa browser lama tidak mengenali yang baruapplication/javascript
, tetapi masih mengenali yang lamatext/javascript
. Saya berencana untuk terus menggunakan ini, atau saya akan membuang waktu berjam-jam untuk mencoba mengubah SETIAP contohtext/javascript
menjadiapplication/javascript
.Sekarang suatu hari kebalikannya mungkin benar. Suatu hari nanti browser terbaru mungkin menolak teknik lama agar sesuai dengan standar.
Namun hingga orang yang melihat situs web saya mulai mengeluh bahwa "sejak peramban saya ditingkatkan versinya, sekitar 50% situs web Anda menghilang", saya tidak memiliki motif untuk mengubah kode di situs web saya.
sumber
Inilah jawaban tahun 2020 untuk pertanyaan ini.
text/javascript
adalah jenis MIME JavaScript yang benar sesuai dengan Standar HTML , yang menyatakan:Dan juga :
Pekerjaan sedang dilakukan untuk mencerminkan kenyataan ini dalam RFC di tingkat IETF: https://datatracker.ietf.org/doc/draft-ietf-dispatch-javascript-mjs/
Setiap klaim bahwa "
text/javascript
adalah yang usang" mengatakan demikian berdasarkan RFC 4329, yang baik Standar HTML maupun draf IETF yang disebutkan di atas (yaitu RFC yang akan datang) secara eksplisit mengoreksi.sumber
Ini telah menjadi "teks / javascript" tetapi ini sudah usang (lihat Daftar IANA ) dan sekarang harus "application / javascript" (lihat Daftar IANA lainnya ).
sumber