Apa keuntungan menggunakan Javascript-only dibandingkan menggunakan JQuery-only?
Saya memiliki pengalaman terbatas dengan pengodean JavaScript dan JQuery. Saya telah menambahkan bit dan snippet dari masing-masing ke halaman HTML tapi saya sebagian besar kode hal sisi server dalam bahasa lain. Saya telah memperhatikan bahwa walaupun Anda secara teoritis dapat melakukan hal yang sama menggunakan salah satu dari dua pendekatan (dan tentu saja Anda bahkan dapat mencampurnya dalam proyek yang sama) tampaknya ada kecenderungan untuk selalu mulai menggunakan JQuery dari awal. tidak peduli apa tuntutan proyek itu.
Jadi saya hanya ingin tahu, apakah ada manfaat tepat waktu untuk tidak menggunakan JQuery saja tetapi alih-alih hanya menggunakan JavaScript biasa?
Saya tahu ini sepertinya bukan pertanyaan karena dapat dikatakan bahwa "tidak ada jawaban yang pasti" atau "itu bisa diperdebatkan selamanya", tetapi saya sebenarnya berharap untuk jawaban tepat waktu seperti "Anda dapat melakukan ini di satu pendekatan dan Anda tidak dapat melakukannya dengan yang lain ".
Sesuai komentar scrwtp, saya tidak merujuk hanya ke bagian Penanganan DOM. Pertanyaan saya agak: JQuery adalah perpustakaan. Untuk Javascript. Apa yang saya temukan aneh tentang perpustakaan ini sebagai lawan dari perpustakaan lain untuk bahasa lain adalah bahwa dalam kasus JQyery tampaknya dirancang untuk dapat menggunakannya secara eksklusif dan tidak perlu menyentuh Javascript secara langsung. Ini bertentangan dengan katakanlah Hibernate dan SQL, di mana meskipun perpustakaan (atau lebih tepatnya kerangka kerja dalam kasus ini, tapi saya pikir analoginya masih berlaku) menangani BANYAK aspek, Anda masih bisa menggunakan SQL saat menggunakannya , setidaknya untuk beberapa kasus pinggiran. Namun dalam kasus JQuery & Javascript, Anda dapat melakukan apa pun yang Anda lakukan dengan Javascript hanya menggunakan JQuery (atau setidaknya begitulah menurut saya).
Sesuai komentar Stargazer712: ya, saya setuju dengan Anda, pertanyaannya di sini adalah, seperti yang Anda katakan "hanya masalah bagaimana Anda akan menggunakan JavaScript". Itulah yang sebenarnya ingin saya tanyakan, tetapi saya telah membuat beberapa formulasi yang buruk. Berikut analogi lainnya: Spring Expression Language. Itu adalah perpustakaan Java. Anda tidak dapat menggunakannya tanpa Java, ini didasarkan pada Java, dan melalui semua itu Anda masih bisa menggunakan Java. Tetapi dalam praktiknya apa yang dapat Anda lakukan adalah menambahkan pustaka ini ke proyek Java, dan kemudian menulis semua kode Anda menggunakan bahasa ekspresi Spring EL yang secara efektif membuat kode Anda tidak menyerupai Java sama sekali, dan bahkan pergeseran paradigma (misalnya Anda tidak lagi memiliki penegakan tipe yang kuat saat menggunakan ini). Meskipun saya mengerti bahwa JQuery hanyalah sebuah pustaka JS, bagi saya sepertinya dalam praktiknya ia memiliki efek yang sama seperti Spring EL dengan Java, yaitu Anda hanya dapat menggunakan API itu melalui proyek dan menghindari API JavaScript. Dan saya bertanya-tanya apakah itu hal yang baik untuk dilakukan, apa yang mungkin menjadi jebakan dll
(dan ya, setelah membaca jawaban semua orang, saya mengerti bahwa:
Sebuah. pertanyaan saya agak tidak masuk akal sampai titik tertentu
b. bahkan jika pertanyaannya benar-benar akurat, jawabannya akan cukup banyak "tidak, Anda tidak bisa hanya menggunakan JQuery-only sepanjang waktu)
sumber
Jawaban:
Pertama - tidak mungkin menggunakan jQuery saja, yang dilakukan jQuery adalah menambahkan $ object ke lingkup global Anda, dengan banyak metode di dalamnya. Pustaka yang lebih manipulatif seperti prototipe bukan alternatif untuk javascript, mereka adalah toolbelt untuk memecahkan masalah umum.
Keuntungan utama menambahkan jQuery ke toolbelt Anda adalah:
Javascript tidak lagi hanya bahasa sisi klien, dan karena jQuery sangat bergantung pada DOM, itu adalah kandidat yang mengerikan untuk pindah ke server. Saya sangat merekomendasikan meluangkan waktu untuk memahami mengapa Anda menggunakan jQuery (mengajukan pertanyaan ini adalah langkah pertama yang bagus!), Dan mengevaluasi kapan diperlukan. jQuery bisa berbahaya, beberapa bahaya utama adalah:
Pada akhirnya, jQuery adalah pustaka yang sangat berguna dan bermanfaat, bila digunakan dengan benar. Namun, ini bukan alternatif untuk javascript. Ini adalah perpustakaan, seperti zepto.js , YUI , Dojo , MooTools , dan Prototype - salah satunya mungkin merupakan pilihan yang jauh lebih baik untuk proyek Anda saat ini.
Javascript adalah bahasa yang disalahpahami, dan baru-baru ini dianggap sebagai sesuatu yang lebih dari bahasa scripting oleh kebanyakan orang. Saya sangat merekomendasikan untuk membaca lebih lanjut, inilah beberapa tempat yang bagus untuk memulai:
Sunting 07/2014 - Saya perhatikan posting ini masih mendapatkan perhatian, jadi saya menambahkan banyak tautan. Ini tidak ada urutan tertentu, tetapi harus membantu.
Saya yakin ada lebih banyak sumber daya hebat yang tidak saya pikirkan atau tidak saya ketahui, penjawab lain harus merasa bebas untuk menambah daftar itu.
sumber
$.ajax
) yang memuntahkan objek pembungkus set elemen dom yang dimaksudkan untuk membuat metode DOM secara umum jauh lebih sedikit dari PITA dengan membuatnya lebih ringkas, memiliki metode auto-loop atas set objek dom setiap kali masuk akal untuk, dan berbagi API yang umum dan dapat diprediksi di seluruh browser (yang kurang dari masalah yaitu IE <= 8).Ada beberapa keuntungan, tetapi masih bisa diperdebatkan apakah mereka benar-benar lebih besar daripada kekurangannya.
Yang utama adalah Anda menghemat bandwidth dan mendapatkan respons yang lebih cepat. jQuery menambahkan ~ 30kb ke respons Anda. Pada beberapa jaringan (dan di beberapa negara), itu bisa berarti beberapa milidetik lagi. Di sisi lain, Anda dapat mengatur caching untuk itu dengan lebih mudah menggunakan server web Anda (atau seperti kata Xion, gunakan itu dari situs Google sehingga tidak akan berdampak pada Anda sendiri, dan masih di-cache).
Yang kedua adalah bahwa Anda mungkin hanya membutuhkan beberapa fungsionalitas yang sangat sederhana, dan hanya mengunduh dan mengatur jQuery dapat membutuhkan waktu lebih lama daripada hanya mengimplementasikan apa yang Anda butuhkan.
Dan terakhir, Anda mungkin ingin menggulung kerangka kerja Anda sendiri, yang sebagian besar merupakan ide yang buruk, tetapi beberapa orang punya alasan sendiri.
Namun jika Anda membuang jQuery hanya karena Anda terintimidasi oleh kurva belajar, maka Anda harus mempertimbangkan kembali. Terutama karena itu agak lembut.
sumber
Sejauh yang saya tahu benar-benar hanya ada dua keuntungan menggunakan vanilla javascript dibandingkan perpustakaan seperti JQuery , MooTools , dll.
Perlu menunjukkan mengapa Anda ingin menggunakan perpustakaan javascript, yang ada banyak:
Saya dulu bekerja di toko web yang bersikeras menggunakan vanilla javascript karena jQuery besar dan menakutkan. Keputusan ini, sebagian besar dipengaruhi oleh "pengembang javascript" tunggal, adalah sumber dari banyak bug browser dan perkembangan lambat dan mencoba masuk ke basis kode-nya adalah pengalaman yang menarik. Menulis kerangka kerja Anda sendiri mungkin tampak seperti ide yang bagus, tetapi jika Anda ingin merekrut pengembang baru maka mereka tidak dapat dengan cepat masuk dan membantu. Lalu ada juga masalah faktor bus untuk dipertimbangkan.
Seperti yang saya katakan dulu bekerja di sana ... ada padang rumput yang lebih hijau di tempat lain. : ^)
sumber
Kebetulan saya mencampur keduanya cukup sedikit. Alasan terbesar untuk ini adalah bahwa untuk beberapa aplikasi (pikirkan ekstensi chrome) Anda tidak memerlukan dukungan lintas browser. Yang berarti bahwa saya dapat mengambil keuntungan dari kemajuan baru seperti CSS3 yang dengan hal-hal seperti transisi dapat menyederhanakan kode Anda satu ton dibandingkan penggunaan jquery.
Juga saya sering melakukan sesuatu kebiasaan. Dengan segala cara, seperti yang lain mengatakan Anda tidak harus menciptakan kembali roda. Tetapi ketika Anda diminta untuk melakukan beberapa fungsi gila, saya sering menemukan lebih mudah untuk menulisnya sendiri kemudian mencoba dan meretas beberapa plugin jquery yang dekat tetapi bukan pasangan yang sempurna.
Saya juga pernah bekerja dengan pengembang yang hanya bekerja dengan jquery. Dan saya harus mengatakan bahwa mereka berkompromi pada fungsionalitas jauh lebih sering daripada tidak jika mereka tidak dapat menemukan plugin jquery yang melakukan apa yang mereka inginkan.
Pada titik tertentu dalam pengembangan web Anda akan diminta untuk melakukan sesuatu yang tidak dipaket sebelumnya di perpustakaan. Jadi pada titik itu Anda lebih baik memastikan Anda memahami bagaimana bahasa dasar benar-benar berfungsi.
Jadi TLDC : Gunakan keduanya, Anda berada pada posisi yang kurang menguntungkan dengan menggunakan vanilla saja dan Anda berada pada posisi yang kurang menguntungkan jika Anda tidak tahu vanila di dalam dan luar dan bersikeras untuk selalu menggunakan jquery.
sumber
document.querySelectorAll
belakang layar.Satu-satunya hal yang dapat saya pikirkan bahwa Anda tidak dapat melakukannya tanpa JQuery adalah menggunakan plugin JQuery; bahkan kemudian, Anda dapat menulis perpustakaan JS Anda sendiri yang akan menyediakan apa yang dibutuhkan oleh plugin.
Pikirkan seperti ini: JQuery adalah pustaka Javascript open-source yang ditulis dalam Javascript; Anda dapat melihat sumbernya, dan dengan demikian belajar bagaimana melakukan apa pun yang dilakukannya.
Anda tidak dapat menggunakan JQuery tanpa menggunakan Javascript biasa. Anda mungkin tidak akan menggunakan
document.getElementById
, tetapi Anda masih akan mendefinisikan fungsi dan variabel dengan cara Javascript standar; Anda bahkan mungkin menulisfor
loop standar .Manfaat utama menggunakan JQuery hampir sama dengan pustaka pihak ke-3 lainnya dalam bahasa apa pun: Anda tidak perlu menulis kode sebanyak mungkin untuk mengimplementasikan logika yang spesifik untuk aplikasi Anda.
Jangan biarkan ukuran itu membuat Anda takut. Versi CDN adalah unduhan ~ 33k yang akan di-cache oleh browser pengguna setelah klik halaman pertama.
sumber
Jika Anda khawatir tentang kinerja, Anda harus mencoba menggunakan vanilla js kapan pun memungkinkan. kerangka kerja tidak hanya menambah overhead bandwidth tetapi juga memproses overhead. Dan jQuery hadir dengan kompatibilitas browser untuk browser yang cukup lama juga.
jika Anda bekerja pada aplikasi atau game seluler (atau keduanya digabungkan), Anda memerlukan kinerja dan efisiensi sumber daya terlebih dahulu.
jQuery dan plugins mungkin mempercepat pengembangan Anda, tetapi terutama jika Anda mengandalkan plugin jquery pihak ketiga Anda harus tahu apa yang mereka lakukan di dalam. Banyak dari mereka adalah contoh buruk dari kualitas dan efisiensi kode.
jQuery bisa 2 hingga 10 kali lebih lambat dari JavaScript asli. Dan itu dapat dengan mudah mendorong pengembang untuk tidak mendesain antarmuka mereka dengan benar dan terlalu bergantung pada pemilih jQuery yang jauh lebih lambat daripada yang asli.
sumber