Mana yang lebih baik: <script type = “text / javascript”>… </script> atau <script>… </script>

97

Mana yang lebih baik atau lebih nyaman digunakan:

<script type="text/javascript">...</script> 

atau

<script>...</script>
pencilCake
sumber
7
Jika Anda menggunakan javascript sebagai bahasa maka tentu saja yang pertama lebih baik
Chinmayee G
Saya menduga kinerja yang Anda peroleh dari mendeklarasikan script sebagai java-script tidak signifikan, tapi pertanyaan yang bagus!
The_Butcher
10
Apakah jawaban "benar" berbeda jika kita menggunakan Html v4 dan Html v5?
Dimitrios Mistriotis
Ini bukan tentang mana yang lebih baik tetapi kapan harus menggunakan apa; saat menggunakan deklarasi HTML5 <!doctype html>, tidak perlu menggunakan petunjuk jenis MIME type="text/javascript"pada <script>tag karena ini berlaku secara default. Di sisi lain (non-HTML5), ini disarankan dan direkomendasikan (dengan mengacu pada petunjuk jenis MIME type="text/javascript").
nyedidikeke

Jawaban:

138

Apakah Anda membutuhkan atribut tipe sama sekali? Jika Anda menggunakan HTML5, tidak. Jika tidak, ya. HTML 4.01 dan XHTML 1.0 menentukan typeatribut yang diperlukan sementara HTML5 memilikinya sebagai opsional, dengan default text/javascript. HTML5 sekarang diimplementasikan secara luas, jadi jika Anda menggunakan doctype HTML5, <script>...</script>itu valid dan pilihan yang baik.

Mengenai apa yang harus ada di atribut tipe, tipe MIME yang application/javascriptdidaftarkan pada 2006 dimaksudkan untuk menggantikan text/javascriptdan didukung oleh versi terkini dari semua browser utama (termasuk Internet Explorer 9). Kutipan dari RFC yang relevan :

Dokumen ini dengan demikian mendefinisikan teks / javascript dan teks / ecmascript tetapi menandainya sebagai "usang". Penggunaan jenis media eksperimental dan tidak terdaftar, seperti yang tercantum pada bagian di atas, tidak disarankan. Jenis media,

  * application/javascript
  * application/ecmascript

yang juga didefinisikan dalam dokumen ini, dimaksudkan untuk penggunaan umum dan sebagai gantinya harus digunakan.

Namun, IE hingga dan termasuk versi 8 tidak menjalankan skrip di dalam <script>elemen dengan typeatribut salah satu application/javascriptatau application/ecmascript, jadi jika Anda perlu mendukung IE lama, Anda tidak dapat melakukannya text/javascript.

Tim Down
sumber
3
Anda tidak "membutuhkan" typeatribut tersebut. Memvalidasi terhadap HTML4.01 atau XHTML 1.0 bukanlah hal yang seharusnya Anda lakukan lagi, dan semua browser akan mendukung tag Anda tanpatext/javascript
Ian Storm Taylor
9
@Ian: Pada saat penulisan, spesifikasi HTML5 adalah draf yang berfungsi dan belum berubah menjadi status saat ini sebagai target yang terus bergerak. Implementasi browser HTML5 jauh di belakang di mana mereka sekarang. Mempertimbangkan hal ini, saya pikir HTML5 pada saat itu tidak dapat digunakan di web umum dan jawaban saya benar-benar adil, dan selalu membawa penafian "jika Anda ingin HTML Anda valid" . Saya setuju bahwa hal-hal telah berpindah dan jawaban ini dapat dilakukan dengan revisi, tetapi saya tidak setuju bahwa menulis halaman web dalam HTML 4.01 sekarang selalu merupakan hal yang salah untuk dilakukan.
Tim Down
1
+1, baru saja menemukan pertanyaan ini dari seorang penipu. Itu mengingatkan saya pada beberapa posting di blog Anne Van Kesteren, termasuk tipe JavaScript MIME , di mana dia membahas ini. Saya tidak dapat menemukannya, tetapi saya yakin ada posting yang dia rekomendasikan untuk tidak digunakan typesama sekali karena berfungsi di semua browser. Mungkin itu orang lain.
Andy E
1
Hanya ingin mengucapkan "terima kasih" saat saya mencoba mencari tahu mengapa file JS "application / javascript" tidak dijalankan di IE8 dan di bawahnya!
andrewtweber
bagaimana dengan: "text / javascript; version = 1.8"?
SparK
10

Keduanya akan berfungsi tetapi standar xhtml mengharuskan Anda untuk menentukan typejuga:

<script type="text/javascript">..</script> 

<!ELEMENT SCRIPT - - %Script;          -- script statements -->
<!ATTLIST SCRIPT
  charset     %Charset;      #IMPLIED  -- char encoding of linked resource --
  type        %ContentType;  #REQUIRED -- content type of script language --
  src         %URI;          #IMPLIED  -- URI for an external script --
  defer       (defer)        #IMPLIED  -- UA may defer execution of script --
  >

type = content-type [CI] Atribut ini menentukan bahasa skrip konten elemen dan menimpa bahasa skrip default. Bahasa skrip ditentukan sebagai jenis konten (misalnya, "teks / javascript"). Penulis harus memberikan nilai untuk atribut ini. Tidak ada nilai default untuk atribut ini.

Perhatikan penekanan di atas.

http://www.w3.org/TR/html4/interact/scripts.html

Catatan: Pada HTML5 (jauh), typeatribut tidak diperlukan dan merupakan default.

Sarfraz
sumber
9

Anda perlu menggunakan <script type="text/javascript"> </script>kecuali Anda menggunakan html5. Dalam hal ini Anda didorong untuk memilih <script> ... </script>(karena atribut tipe ditentukan secara default ke nilai itu)


sumber
5

Ini semua yang dibutuhkan:

<!doctype html>
<script src="/path.js"></script>
chovy
sumber
3

<script type="text/javascript"></script> karena itu cara yang benar dan kompatibel dengan semua browser

pooja
sumber
-2

Dengan Firefox terbaru, saya harus menggunakan:

<script type="text/javascript">...</script>

Atau skrip mungkin tidak berjalan dengan baik.

Stephen Elliott
sumber