it-swarm-id.com

PHP vs JavaScript Untuk Halaman HTML Dinamis

Biasanya ketika saya mengumpulkan markup HTML yang dihasilkan secara dinamis, saya telah menggunakan PHP untuk menyimpan informasi dan kemudian mengulanginya untuk membuat elemen pada halaman. Salah satu contohnya adalah navigasi; buat array objek dan kemudian loop melalui mereka untuk mengulangi markup. Ini sangat membantu saat saya mungkin harus membuat perubahan kecil (atau besar) selama pengembangan atau pemeliharaan.

Akhir-akhir ini saya bertanya-tanya apakah saya harus menggunakan JavaScript untuk melakukan ini. Prinsip yang sama, tetapi menggunakan addElement.

Hanya ingin mendapatkan beberapa pendapat tentang ini; pro, kontra, php vs js, pertimbangan seo, dll.

Terima kasih semuanya!

21
Eric

Sisi klien artinya adalah:

  1. Melakukannya di banyak lingkungan berbeda dan bukannya di satu lingkungan
  2. Memecahnya setiap kali pengguna datang tanpa JS (untuk alasan apa pun)
  3. Gagal bekerja untuk sebagian besar bot (termasuk mesin pencari)
  4. Investasikan waktu pengembangan dalam mengubah semua logika Anda
  5. Memerlukan browser untuk membuat permintaan tambahan ke server, memperlambat waktu pemuatan

Ketika memutuskan apakah Anda harus melakukan sesuatu sisi klien alih-alih sisi server, sebagai aturan praktis tanyakan pada diri sendiri dua pertanyaan:

  1. Apakah pengguna akan mendapat manfaat dari mendapatkan umpan balik instan dalam menanggapi mereka melakukan sesuatu? misalnya Pesan kesalahan untuk data yang tidak patut dalam bentuk yang mereka coba kirim. Jika demikian, maka melakukannya sisi klien akan bermanfaat. 
  2. Bisakah itu dilakukan sisi server? Jika demikian, lakukan sisi server terlebih dahulu karena lebih dapat diandalkan (dan untuk hal-hal non-kosmetik, lebih sulit untuk diganggu). Bangun hal-hal yang berhasil .
40
Quentin

Ini bukan salah satu atau jenis situasi lainnya; umumnya Anda harus melakukan keduanya. 

Melakukannya sisi klien mungkin akan lebih lambat, karena server masih perlu mencari tahu semua data tetapi klien perlu merendernya; ini akan melibatkan beberapa permintaan (kemungkinan besar) dan manipulasi DOM lambat (terutama pada browser lama).

4
El Yobo

Praktik terbaik adalah menghasilkan markup yang diperlukan di sisi server. Alasan untuk ini termasuk:

SEO: Kebanyakan bot crawler tidak akan menguraikan Javascript, jadi mereka akan melewatkan apa pun yang penting yang Anda hasilkan dengan addElement.

Aksesibilitas: Situs Anda pada dasarnya harus berfungsi tanpa Javascript. Pertimbangkan orang-orang yang mungkin menjelajahi situs Anda di Kindles, Blackberry yang lebih tua, Nokias, atau ponsel berfitur lainnya dengan data. Mereka tidak membutuhkan semua gaya dan efek mewah, tetapi mereka setidaknya harus dapat berkeliling situs Anda.

Konsistensi: JS dapat menambahkan level lain dari variabilitas lintas-browser. Mengapa mengandalkan rendering yang diperlukan dari sisi klien? Lakukan di sisi server.

Tentu saja, saran ini dapat diambil jika Anda mengembangkan aplikasi desktop all-JS atau menggunakan sesuatu seperti Sencha Touch framework.

4
Charlie Tran

Jika SEO menjadi perhatian Anda, semuanya sederhana: JS tidak diindeks.

Ada juga masalah UI: jika JS tidak diaktifkan, tidak ada hal yang bergantung pada JS akan dimuat.

1

Satu kemungkinan adalah mendeteksi pengguna seperti apa yang melihat situs Anda:

  • Jika bot: parse di sisi server, Anda bisa menampilkan apa yang dibutuhkan oleh bot, tanpa hal-hal grafis, ...

  • Jika itu ponsel: tampilkan versi yang dioptimalkan untuk seluler, gunakan sesuatu seperti Sencha Touch, seperti yang ditunjukkan Charlie

  • Jika itu browser standar, tanpa javascript: render halaman di sisi server

  • Jika itu browser standar, dengan javascript memungkinkan: cukup kirim data dari sisi server (atau muat dengan Ajax) dan render data dari sisi klien

Anda dapat menggunakan sesuatu seperti Moustache , yang merupakan mesin template yang berjalan pada banyak bahasa sisi-server (PHP, Ruby, Java, ... tetapi juga pada Javascript, memungkinkan rendering halaman sisi klien!

Dan coba gunakan kerangka Javascript seperti jQuery , Mootools , Dojo atau ExtJS , mereka akan membantu Anda menulis kode yang akan berjalan di setiap browser.

0
ygosteli

PHP bagus untuk beberapa hal, termasuk templating tipe Handlebars, dan penggantian konten sisi server yang cepat. Tetapi itu juga tidak bagus untuk beberapa hal, seperti aplikasi dan game satu halaman, pembaruan real-time ke situs web. Itulah hal-hal di mana JavaScript kuat.

0
Gort