Apa perbedaan antara paket jquery normal dan ramping?


436

Di CDNJS paket jquery.slim ditempatkan. Ini memiliki ukuran lebih kecil. Apa perbedaan utama dari yang asli? Melihat sekilas kode tidak memberikan jawabannya, dan di jquery.com saya belum menemukan referensi tentang slimpaket.

Jadi, apa perbedaan antara jquery.js dan jquery.slim.js?



Dalam pandangan saya, Anda menerima jawaban yang biasa-biasa saja dan harus mengubahnya.
Robert Siemer

@RobertSiemer, mungkin, tetapi suara dari seratus orang menunjukkan aktualitas jauh lebih jelas dalam pandangan saya. Jawaban yang diterima cukup lengkap dan tepat waktu dan sekarang masih memberikan solusi yang singkat, cepat dan cukup.
SynCap

Saya benar-benar tidak setuju dengan Anda. Suara pada jawaban yang diterima menunjukkan tidak ada apa-apa dibandingkan dengan jawaban lain di bawah ini (dan Anda harus tahu itu). Dan apa pun jawabannya di masa lalu sama sekali tidak relevan untuk q / situs web publik. Orang-orang datang ke sini sekarang dan membutuhkan jawaban terbaik. Lebih lanjut: Bhojendra Rauniyar benar-benar dapat melakukannya tanpa 15 rep. poin.
Robert Siemer

Jumlah absolut dari downvotes adalah indikator kualitas yang lebih baik dibandingkan dengan jawaban lain. — Saya baru menyadari bahwa jawaban kedua sebenarnya yang paling banyak dipilih, jadi tidak banyak yang bisa dikatakan.
Robert Siemer

Jawaban:


296

Melihat kode saya menemukan perbedaan berikut antara jquery.js dan jquery.slim.js:

Di jquery.slim.js, fitur berikut dihapus:

  1. jQuery.fn.extend
  2. jquery.fn.load
  3. jquery.each // Pasang banyak fungsi untuk menangani acara AJAX yang umum
  4. jQuery.expr.filters.animated
  5. pengaturan ajax seperti jQuery.ajaxSettings.xhr, jQuery.ajaxPrefilter, jQuery.ajaxSetup, jQuery.ajaxPrefilter, jQuery.ajaxTransport, jQuery.ajaxSetup
  6. xml parsing seperti jQuery.parseXML,
  7. efek animasi seperti jQuery.easing, jQuery.Animation, jQuery.speed

6
Dalam sumber slim 3.x, saya masih melihat jQuery.fn.extenddigunakan untuk menambahkan metode ke set dibungkus. Apakah Anda merujuk ke hal lain di # 1?
cantera

39
Yang perlu diperhatikan adalah Bootstrap 4 menargetkan rilis jQ slim. Animasi mungkin adalah titik kerusakan terbesar, tetapi sebagian besar dari mereka dapat dilakukan dengan lebih baik dan lebih cepat menggunakan CSS3.
Josh Habdas

3
Apa yang Anda maksud dengan "jQuery.each"? jQuery.each belum dihapus di jQuery 3 slim
Chris Moschini

18
Mungkin ingin mengedit jawaban untuk mengekspresikan ini secara berbeda - mengatakan jquery. Setiap daftar di sini dalam apa yang dihapus itu membingungkan.
Chris Moschini

1
fungsi seperti slideUp, slideDown juga tidak berfungsi dengan versi ramping.
Usman Arshad

317

Jawaban singkat diambil dari pengumuman Rilis Final jQuery 3.0 :

Seiring dengan versi reguler jQuery yang mencakup modul ajax dan efek, kami merilis versi "langsing" yang tidak termasuk modul-modul ini. Semua dalam semua, tidak termasuk ajax, efek, dan kode yang saat ini tidak digunakan lagi.

Ukuran file (gzip) sekitar 6k lebih kecil, 23.6k vs 30k.


40

Pada saat ini, jawaban yang paling berwibawa tampaknya ada dalam masalah ini , yang menyatakan "ini adalah build khusus jQuery yang mengecualikan efek, ajax, dan kode yang tidak digunakan lagi." Detail akan diumumkan dengan jQuery 3.0.

Saya menduga bahwa alasan untuk mengecualikan komponen-komponen ini dari perpustakaan jQuery adalah sebagai pengakuan atas skenario jQuery yang semakin umum digunakan dalam hubungannya dengan kerangka kerja JS lainnya seperti Angular atau React. Dalam kasus ini, penggunaan jQuery terutama untuk traversal dan manipulasi DOM, sehingga meninggalkan komponen-komponen yang sudah usang atau disediakan oleh kerangka kerja yang mendapatkan pengurangan sekitar 20% dalam ukuran file.


10
Dapat juga digunakan oleh pengembang yang menggunakan fitur modern seperti fetch()yang merupakan pengganti modern untuk XMLHttpRequest(AJAX).
Fred

25

Blog jQuery, jQuery 3.1.1 Dirilis! , berkata,

Membangun ramping

Terkadang Anda tidak membutuhkan ajax, atau Anda lebih suka menggunakan salah satu dari banyak perpustakaan mandiri yang berfokus pada permintaan ajax. Dan seringkali lebih mudah untuk menggunakan kombinasi CSS dan manipulasi kelas untuk semua animasi web Anda. Seiring dengan versi reguler jQuery yang mencakup modul ajax dan efek, kami telah merilis versi "langsing" yang tidak termasuk modul ini. Semua dalam semua, tidak termasuk ajax, efek, dan kode yang saat ini tidak digunakan lagi. Ukuran jQuery sangat jarang menjadi masalah kinerja pemuatan saat ini, tetapi build ramping sekitar 6k gzip byte lebih kecil dari versi reguler - 23.6k vs 30k.


17

Saya bisa melihat $.ajaxdihapus dari jQuery slim 3.2.1

Dari dokumen jQuery

Anda juga dapat menggunakan build ramping, yang mengecualikan modul ajax dan efek

Di bawah ini adalah komentar dari versi ramping dengan fitur yang dihapus

/*! jQuery v3.2.1 -ajax,-ajax/jsonp,-ajax/load,-ajax/parseXML,-ajax/script,-ajax/var/location,-ajax/var/nonce,-ajax/var/rquery,-ajax/xhr,-manipulation/_evalUrl,-event/ajax,-effects,-effects/Tween,-effects/animatedSelector | (c) JS Foundation and other contributors | jquery.org/license */

Apa alternatif untuk $ .ajax?
Zyo

2
@Zyo baik menggunakan objek xmlhttprequest dalam JavaScript biasa atau menggunakan versi normal jQuery.
kiranvj


@Octavioamu fetch adalah sebuah opsi, tetapi mungkin memerlukan polyfill berdasarkan browser pendukung
kiranvj

5

Seperti yang dicatat, Ajax dan modul efek telah dikecualikan dari jQuery slim perbedaan ukuran pada 3.3.1 untuk versi minified yang tidak di-zip adalah 85k vs 69k (hemat 16k untuk slim) atau 30vs24 untuk zip, penting untuk dicatat bahwa bootstrap 4 menggunakan jQuery yang ramping jadi jika seseorang menginginkan versi lengkapnya, mereka perlu menyebutnya sebagai gantinya

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.