# dokumentasi Django 2.0.8

# JavaScript

Selagi kebanyakan inti Django adalah Python, aplikasi penyumbang `admin` and `gis` mengandung kode JavaScript.

Silahkan mengikuti standar pengkodean ketika menulis kode javaScript untuk penyertaan di Django.

## Gaya kode

- Harap konfirmasikan gaya lekukan didiktekan dalam berkas `.editorconfig`. Kami menganjurkan menggunakan penyunting teks dengan dukungan EditorConfig untuk menghindari masalah lekukan dan ruang kosong. Kebanyakan berkas-berkas JavaScript menggunakan 4 spasi untuk lekukan, tetapi ada beberapa pengecualian.
- Ketika memberi nama variabel, gunakan `camelCase` daripada `underscore_case`. Berkas-berkas JavaScript berbeda terkadang menggunakan gaya kode berbeda. Harap coba tegaskan pada gaya kode dari setiap berkas.
- Gunakan linter kode JSHint untuk memeriksa kesalahan dan dan kekeliruan gaya. JSHint akan berjalan ketika anda menjalankan percobaan javaScript. Kami jug amenganjurkan memasang sumbatan JSHint di penyunting teks anda.
- Jika memungkinkan, tulis kode yang akan bekerja bahkan jika struktur halaman terakhir dirubah dengan JavaScript. Sebagai contoh, ketika mengikat sebuah penangan klik, gunakan $('body').on('click', selector, func)` daripada `$(selector).click(func)`. Ini membuatnya lebih mudah untuk memperpanjang perilaku awalan Django dengan JavaScript.

## Tambalan JavaScript

Sistem admin Django berpengaruh kerangka kerja jQuery untuk meningkatkan kemampuan dari antarmuka admin. Dalam hubungannya, ada sebuah tekanan pada penampilan admin JavaScript dan memiminalkan keseluruhan ukuran berkas media admin. Melayani versi dikempa atau "dikecilkan" dari berkas-berkas JavaScript adalah dianggap praktik terbaik dalam kasus ini.

Untuk itu, tambalan-tambalan untuk berkas-berkas JavaScript harus menyertakan kedua kode asli untuk pengembangan akan datang (sebagai contoh `foo.js`), dan versi dikempa untuk penggunaan produksi (sebagai contoh `foo.min.js`). Tautan apapun pada berkas di basis kode harus menunjukkan ke versi terkempa.

### Memadatkan JavaScript

Untuk menyederhanakan pengolahan menyediakan kode JavaScript yang dioptimalkan, Django menyertakan tulisan Python berguna yang harus digunakan untuk membuat versi "dipekercil". Untuk menjalankannya:

    $ pip install closure
    $ python django/contrib/admin/bin/compress.py

Dibelakang layar, `compress.py` adalah bagian-depan untuk Closure Compiler Google yang ditulis dalam Java. Pustaka Closure Compiler tidak digabungkan dengan Django, tetapi anda dapat memasangnya menggunakan pip seperti dilakukan dibawah. Pustaka Closure Compiler membutuhkan Java 7 atau lebih tinggi.

Harap jangan lupa menjalankan `compress.py` dan sertakan `diff` dari tulisan yang diperkecil ketika mengajukan tambalan untuk JavaScript Django.

## Percobaan JavaScript

Percobaan JavaScript Django dapat berjalan di perambah atau baris perintah. Percobaan ditempatkan di tingkat atas pelipat `js_tests`.

### Menulis percobaan

Percobaan JavasScript Django menggunakan QUnit. Ini adalah sebuah contoh percobaan modul:

    QUnit.module('magicTricks', {
        beforeEach: function() {
            var $ = django.jQuery;
            $('#qunit-fixture').append('<button class="button"></button>');
        }
    });

    QUnit.test('removeOnClick removes button on click', function(assert) {
        var $ = django.jQuery;
        removeOnClick('.button');
        assert.equal($('.button').length, 1);
        $('.button').click();
        assert.equal($('.button').length, 0);
    });

    QUnit.test('copyOnClick adds button on click', function(assert) {
        var $ = django.jQuery;
        copyOnClick('.button');
        assert.equal($('.button').length, 1);
        $('.button').click();
        assert.equal($('.button').length, 2);
    });

Silahkan rundingkan dokumentasi QUnit untuk informasi pada jenis-jenis dari assertions supported by QUnit.

### Menjalankan percobaan

Percobaan JavaScript dapat berjalan dari perambah jaringan atau dari baris perintah.

#### Dicoba dari sebuah perambah jaringan

Untuk menjalankan percobaan dari perambah jaringan, buka `js_tests/tests.html` di perambah anda.

Untuk mengukur cakupan kode ketika menjalankan percobaan, anda butuh melihat berkas itu melalui HTTP. Untuk melihat cakupan kode:

- Menjalankan `python -m http.server` dari akar direktori (bukan dari dalam `js_tests`).
- Buka http://localhost:8000/js_tests/tests.html di perambah jaringan anda.

#### Percobaan dari baris perintah

Untuk menjalankan percobaan dari baris perintah, anda butuh mempunyai Node.js terpasang.

Setelah memasang Node.js, pasang ketergantungan percobaan JavaScript dengan menjalankan berikut dari akar dari pemeriksaan Django:

    $ npm install

lalu jalankan percobaan dengan:

    $ npm test