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?

SynCap
sumber
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
Bhojendra Rauniyar
sumber
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.

Jannie Theunissen
sumber
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.

gxclarke
sumber
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.

ChrisW
sumber
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 */
kiranvj
sumber
Apa alternatif untuk $ .ajax?
Zyo
2
@Zyo baik menggunakan objek xmlhttprequest dalam JavaScript biasa atau menggunakan versi normal jQuery.
kiranvj
fetch API adalah pengembang.mozilla.org/en-US/docs/Web/API/Fetch_API yang asli dan sangat kuat di sini, bagaimana cara menggunakannya developer.mozilla.org/en-US/docs/Web/API/Fetch_API/Using_Fetch
Octavioamu
@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

Yehuda Schwartz
sumber