Rumah hujung hadapan web tutorial js 10 petua untuk mengoptimumkan kelajuan aplikasi web Node.js anda_node.js

10 petua untuk mengoptimumkan kelajuan aplikasi web Node.js anda_node.js

May 16, 2016 pm 04:37 PM
node.js aplikasi web pengoptimuman Kemahiran Lari laju

Node.js sudah pun pantas kerana sifatnya yang dipacu peristiwa dan tak segerak. Walau bagaimanapun, hanya pantas tidak mencukupi dalam rangkaian moden. Jika anda akan menggunakan Node.js untuk membangunkan aplikasi web anda yang seterusnya, maka anda harus melakukan apa sahaja untuk menjadikan aplikasi anda lebih pantas, sangat pantas. Artikel ini akan memperkenalkan 10 petua yang diuji yang boleh meningkatkan aplikasi Node dengan sangat baik. Tanpa berlengah lagi, mari kita lihat satu persatu.

1. Selari

Apabila membuat aplikasi web, anda mungkin perlu memanggil API dalaman beberapa kali untuk mendapatkan pelbagai data. Sebagai contoh, katakan pada halaman Papan Pemuka, anda ingin melaksanakan panggilan berikut:

Maklumat pengguna -getUserProfile().

Aktiviti semasa -getRecentActivity().

Kandungan langganan -getSubscriptions().

Kandungan pemberitahuan -getNotifications().

Untuk mendapatkan maklumat ini, anda akan membuat perisian tengah yang berasingan untuk setiap kaedah dan kemudian memautkannya ke laluan Papan Pemuka. Tetapi masalahnya ialah pelaksanaan kaedah ini adalah linear, dan yang seterusnya tidak akan bermula sehingga yang sebelumnya berakhir. Penyelesaian yang mungkin adalah dengan memanggilnya secara selari.

Seperti yang anda tahu Node.js sangat pandai memanggil pelbagai kaedah secara selari kerana ketidaksegerakan. Kita tidak boleh membazirkan sumber kita. Kaedah yang saya nyatakan di atas tidak mempunyai kebergantungan supaya kita boleh melaksanakannya secara selari. Dengan cara ini kita boleh mengurangkan jumlah perisian tengah dan meningkatkan kelajuan dengan banyak.

Kami boleh menggunakan async.js untuk mengendalikan paralelisme, iaitu modul Nod yang digunakan khas untuk menala JavaScript secara tidak segerak. Kod berikut menunjukkan cara menggunakan async.js untuk memanggil berbilang kaedah secara selari:

Salin kod Kod adalah seperti berikut:

fungsi runInParallel() {
async.parallel([
GetUserProfile,
GetRecentActivity,
Dapatkan Langganan,
GetNotifications
], fungsi(err, hasil) {
//Panggil balik ini berjalan apabila semua fungsi selesai
});
}

Jika anda ingin mengetahui lebih lanjut tentang async.js, sila lawati halaman GitHubnya.

2. Tak segerak

Node.js adalah satu-benang mengikut reka bentuk. Berdasarkan ini, kod segerak boleh menyumbat keseluruhan aplikasi. Sebagai contoh, kebanyakan API sistem fail mempunyai versi segeraknya. Kod berikut menunjukkan kedua-dua operasi segerak dan tak segerak bagi membaca fail:

Salin kod Kod adalah seperti berikut:

// Tak segerak
fs.readFile('file.txt', function(err, buffer) {
kandungan var = buffer.toString();
});

// Segerak
kandungan var = fs.readFileSync('file.txt').toString();


Tetapi jika anda melakukan operasi menyekat jangka panjang, utas utama akan disekat sehingga operasi ini selesai. Ini sangat mengurangkan prestasi aplikasi anda. Oleh itu, sebaiknya pastikan anda menggunakan versi tak segerak API dalam kod anda Sekurang-kurangnya, anda harus tidak segerak dalam nod prestasi. Selain itu, anda harus berhati-hati apabila memilih modul pihak ketiga. Kerana apabila anda cuba untuk menghapuskan operasi penyegerakan daripada kod anda, panggilan segerak daripada pustaka luaran akan membuat asal semua usaha anda dan mengurangkan prestasi aplikasi anda.

3. Cache

Jika anda menggunakan beberapa data yang tidak kerap berubah, anda harus cache untuk meningkatkan prestasi. Contohnya, kod berikut ialah contoh mendapatkan siaran terkini dan memaparkannya:

Salin kod Kod adalah seperti berikut:

var penghala = express.Router();

router.route('/latestPosts').get(function(req, res) {
Post.getLatest(function(err, posts) {
Jika (err) {
           silap buang;
}

res.render('posts', { posts: posts });
});
});


Jika anda tidak kerap membuat siaran, anda boleh cache senarai siaran dan mengosongkannya selepas satu tempoh masa. Sebagai contoh, kita boleh menggunakan modul Redis untuk mencapai tujuan ini. Sudah tentu, anda mesti memasang Redis pada pelayan anda. Anda kemudian boleh menggunakan klien yang dipanggil node_redis untuk menyimpan pasangan kunci/nilai. Contoh berikut menunjukkan cara kami menyimpan siaran:
Salin kod Kod adalah seperti berikut:

var redis = memerlukan('redis'),
Pelanggan = redis.createClient(null, null, { detect_buffers: true }),
Penghala = express.Router();

router.route('/latestPosts').get(function(req,res){
client.get('posts', function (err, posts) {
Jika (siaran) {
Kembalikan res.render('posts', { posts: JSON.parse(posts) });
}

Post.getLatest(fungsi(err, posts) {
Jika (err) {
          silap buang;
}

client.set('posts', JSON.stringify(posts));
res.render('posts', { posts: posts });
});
});
});


Lihat, kami mula-mula menyemak cache Redis untuk melihat sama ada terdapat siaran. Jika ada, kami mendapat senarai siaran daripada cache. Jika tidak, kami mendapatkan semula kandungan pangkalan data dan cache hasilnya. Selain itu, selepas tempoh masa tertentu, kami boleh mengosongkan cache Redis supaya kandungan boleh dikemas kini.

4. pemampatan gzip

Mendayakan pemampatan gzip boleh memberi impak yang besar pada aplikasi web anda. Apabila penyemak imbas termampat gzip meminta beberapa sumber, pelayan memampatkan respons sebelum mengembalikannya kepada penyemak imbas. Jika anda tidak gzip sumber statik anda, penyemak imbas mungkin mengambil masa yang lebih lama untuk mendapatkannya.

Dalam aplikasi Express, kami boleh menggunakan perisian tengah express.static() terbina dalam untuk mengendalikan kandungan statik. Selain itu, kandungan statik boleh dimampatkan dan diproses menggunakan perisian tengah mampatan. Berikut ialah contoh penggunaan:

Salin kod Kod adalah seperti berikut:

var mampatan = memerlukan('mampatan');

app.use(compression()); //gunakan mampatan
app.use(express.static(path.join(__dirname, 'public')));

5 Jika boleh, gunakan pemaparan sebelah pelanggan

Kini, terdapat banyak rangka kerja MVC/MVVM sisi pelanggan yang serba boleh dan berkuasa, seperti AngularJS, Ember, Meteor, dll., menjadikannya sangat mudah untuk membina aplikasi satu halaman. Pada asasnya, anda hanya mendedahkan API dan mengembalikan respons JSON kepada klien tanpa memaparkan halaman di sebelah pelayan. Di sisi pelanggan, anda boleh menggunakan bingkai untuk mengatur JSON dan memaparkannya pada UI. Menghantar hanya respons JSON pada pelayan menjimatkan lebar jalur dan meningkatkan prestasi kerana anda tidak perlu mengembalikan penanda reka letak dalam setiap respons, bukan?

Lihat tutorial saya ini tentang cara mendedahkan API RESTful dengan Express 4. Saya juga menulis satu lagi tutorial yang menunjukkan cara menggabungkan API ini dengan AngularJS.

6 Jangan simpan terlalu banyak data dalam Sesi

Dalam aplikasi halaman Express biasa, data Sesi disimpan dalam ingatan secara lalai. Apabila anda menyimpan terlalu banyak data dalam Sesi, overhed pelayan akan meningkat dengan ketara. Jadi, sama ada anda bertukar kepada kaedah storan lain untuk menyimpan data Sesi, atau cuba mengurangkan jumlah data yang disimpan dalam Sesi.

Sebagai contoh, apabila pengguna log masuk ke aplikasi anda, anda boleh menyimpan hanya ID mereka dalam Sesi dan bukannya keseluruhan objek data pengguna. Selain itu, untuk pertanyaan di mana anda boleh mendapatkan objek melalui id, anda mungkin ingin menggunakan MongoDB atau Redis untuk menyimpan data sesi.

7. Pertanyaan Optimumkan

Andaikan anda mempunyai blog dan anda ingin memaparkan catatan terkini di halaman utama. Anda boleh mendapatkan semula data melalui Mongoose seperti ini:

Salin kod Kod adalah seperti berikut:

Post.find().limit(10).exec(function(err, posts) {
//hantar siaran kepada pelanggan
});

Tetapi masalahnya ialah kaedah find() Mongoose akan menanyakan semua medan objek, dan banyak medan tidak diperlukan pada halaman utama. Contohnya, kedai commentsis membalas siaran tertentu. Kami tidak perlu memaparkan balasan artikel, jadi kami boleh mengecualikannya semasa membuat pertanyaan. Ini pasti akan meningkatkan kelajuan. Anda boleh mengoptimumkan pertanyaan di atas seperti ini:
Salin kod Kod adalah seperti berikut:

Post.find().had(10).exclude('comments').exec(function(err, posts) {
//hantar siaran kepada pelanggan
});

8. Verwenden Sie die Standard-V8-Methode

Einige Vorgänge für Sammlungen, wie z. B. „map“, „reduce“ und „forEach“, werden möglicherweise nicht in allen Browsern unterstützt. Wir können einige Browserkompatibilitätsprobleme über die Front-End-Bibliothek lösen. Für Node.js müssen Sie jedoch genau wissen, welche Vorgänge die V8-JavaScript-Engine von Google unterstützt. Auf diese Weise können Sie diese integrierten Methoden direkt verwenden, um die Sammlung auf der Serverseite zu bearbeiten.

9. Verwenden Sie Nginx vor Node

Nginx ist ein kleiner, leichter Webserver, der die Belastung Ihres Node.js-Servers reduzieren kann. Sie können statische Ressourcen auf Nginx statt auf Node konfigurieren. Sie können gzip verwenden, um Antworten auf Nginx zu komprimieren und so alle Antworten kleiner zu machen. Wenn Sie also ein laufendes Produkt haben, sollten Sie meiner Meinung nach Nginx verwenden, um die Ausführungsgeschwindigkeit zu verbessern.

10. JavaScript verpacken

Schließlich können Sie die Geschwindigkeit der Seitenanwendung auch erheblich verbessern, indem Sie mehrere JS-Dateien packen. Wenn der Browser beim Rendern der Seite auf das Element

Alat AI Hot

Undresser.AI Undress

Undresser.AI Undress

Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover

AI Clothes Remover

Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool

Undress AI Tool

Gambar buka pakaian secara percuma

Clothoff.io

Clothoff.io

Penyingkiran pakaian AI

AI Hentai Generator

AI Hentai Generator

Menjana ai hentai secara percuma.

Artikel Panas

R.E.P.O. Kristal tenaga dijelaskan dan apa yang mereka lakukan (kristal kuning)
3 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Tetapan grafik terbaik
3 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Cara Memperbaiki Audio Jika anda tidak dapat mendengar sesiapa
3 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌

Alat panas

Notepad++7.3.1

Notepad++7.3.1

Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina

SublimeText3 versi Cina

Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1

Hantar Studio 13.0.1

Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6

Dreamweaver CS6

Alat pembangunan web visual

SublimeText3 versi Mac

SublimeText3 versi Mac

Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Perkongsian Petua Win11: Langkau Log Masuk Akaun Microsoft dengan Satu Helah Perkongsian Petua Win11: Langkau Log Masuk Akaun Microsoft dengan Satu Helah Mar 27, 2024 pm 02:57 PM

Perkongsian Petua Win11: Satu helah untuk melangkau log masuk akaun Microsoft Windows 11 ialah sistem pengendalian terkini yang dilancarkan oleh Microsoft, dengan gaya reka bentuk baharu dan banyak fungsi praktikal. Walau bagaimanapun, bagi sesetengah pengguna, perlu log masuk ke akaun Microsoft mereka setiap kali mereka boot sistem boleh menjadi agak menjengkelkan. Jika anda salah seorang daripada mereka, anda juga boleh mencuba petua berikut, yang akan membolehkan anda melangkau log masuk dengan akaun Microsoft dan memasuki antara muka desktop secara langsung. Pertama, kita perlu mencipta akaun tempatan dalam sistem untuk log masuk dan bukannya akaun Microsoft. Kelebihan melakukan ini ialah

Perkara yang mesti dimiliki oleh veteran: Petua dan langkah berjaga-jaga untuk * dan & dalam bahasa C Perkara yang mesti dimiliki oleh veteran: Petua dan langkah berjaga-jaga untuk * dan & dalam bahasa C Apr 04, 2024 am 08:21 AM

Dalam bahasa C, ia mewakili penunjuk, yang menyimpan alamat pembolehubah lain & mewakili pengendali alamat, yang mengembalikan alamat memori pembolehubah. Petua untuk menggunakan penunjuk termasuk mentakrifkan penunjuk, membatalkan rujukan dan memastikan bahawa penunjuk menunjuk ke alamat yang sah & termasuk mendapatkan alamat pembolehubah, dan mengembalikan alamat elemen pertama tatasusunan apabila mendapatkan alamat elemen tatasusunan; . Contoh praktikal yang menggambarkan penggunaan penunjuk dan pengendali alamat untuk membalikkan rentetan.

Panduan Bermula VSCode: Mesti dibaca untuk pemula untuk menguasai kemahiran penggunaan dengan cepat! Panduan Bermula VSCode: Mesti dibaca untuk pemula untuk menguasai kemahiran penggunaan dengan cepat! Mar 26, 2024 am 08:21 AM

VSCode (Visual Studio Code) ialah editor kod sumber terbuka yang dibangunkan oleh Microsoft Ia mempunyai fungsi yang berkuasa dan sokongan pemalam yang kaya, menjadikannya salah satu alat pilihan untuk pembangun. Artikel ini akan menyediakan panduan pengenalan untuk pemula untuk membantu mereka menguasai kemahiran menggunakan VSCode dengan cepat. Dalam artikel ini, kami akan memperkenalkan cara memasang VSCode, operasi penyuntingan asas, kekunci pintasan, pemasangan pemalam, dsb., dan menyediakan contoh kod khusus kepada pembaca. 1. Pasang VSCode dahulu, kita perlu

Pengoptimuman program C++: teknik pengurangan kerumitan masa Pengoptimuman program C++: teknik pengurangan kerumitan masa Jun 01, 2024 am 11:19 AM

Kerumitan masa mengukur masa pelaksanaan algoritma berbanding saiz input. Petua untuk mengurangkan kerumitan masa program C++ termasuk: memilih bekas yang sesuai (seperti vektor, senarai) untuk mengoptimumkan storan dan pengurusan data. Gunakan algoritma yang cekap seperti isihan pantas untuk mengurangkan masa pengiraan. Hapuskan berbilang operasi untuk mengurangkan pengiraan berganda. Gunakan cawangan bersyarat untuk mengelakkan pengiraan yang tidak perlu. Optimumkan carian linear dengan menggunakan algoritma yang lebih pantas seperti carian binari.

Kemahiran pengaturcaraan PHP: Bagaimana untuk melompat ke halaman web dalam masa 3 saat Kemahiran pengaturcaraan PHP: Bagaimana untuk melompat ke halaman web dalam masa 3 saat Mar 24, 2024 am 09:18 AM

Tajuk: Petua Pengaturcaraan PHP: Cara Melompat ke Halaman Web dalam masa 3 Saat Dalam pembangunan web, kita sering menghadapi situasi di mana kita perlu melompat ke halaman lain secara automatik dalam tempoh masa tertentu. Artikel ini akan memperkenalkan cara menggunakan PHP untuk melaksanakan teknik pengaturcaraan untuk melompat ke halaman dalam masa 3 saat, dan memberikan contoh kod khusus. Pertama sekali, prinsip asas lompat halaman direalisasikan melalui medan Lokasi dalam pengepala respons HTTP. Dengan menetapkan medan ini, penyemak imbas secara automatik boleh melompat ke halaman yang ditentukan. Di bawah ialah contoh mudah yang menunjukkan cara menggunakan P

Trik Win11 Didedahkan: Cara Memintas Log Masuk Akaun Microsoft Trik Win11 Didedahkan: Cara Memintas Log Masuk Akaun Microsoft Mar 27, 2024 pm 07:57 PM

Helah Win11 didedahkan: Cara memintas log masuk akaun Microsoft Baru-baru ini, Microsoft melancarkan sistem pengendalian baharu Windows11, yang telah menarik perhatian meluas. Berbanding dengan versi sebelumnya, Windows 11 telah membuat banyak pelarasan baharu dari segi reka bentuk antara muka dan penambahbaikan fungsi, tetapi ia juga telah menyebabkan beberapa kontroversi Perkara yang paling menarik perhatian ialah ia memaksa pengguna untuk log masuk ke sistem dengan akaun Microsoft . Bagi sesetengah pengguna, mereka mungkin lebih terbiasa log masuk dengan akaun tempatan dan tidak bersedia untuk mengikat maklumat peribadi mereka ke akaun Microsoft.

Bagaimana untuk mengoptimumkan item permulaan sistem WIN7 Bagaimana untuk mengoptimumkan item permulaan sistem WIN7 Mar 26, 2024 pm 06:20 PM

1. Tekan kombinasi kekunci (kekunci win + R) pada desktop untuk membuka tetingkap jalankan, kemudian masukkan [regedit] dan tekan Enter untuk mengesahkan. 2. Selepas membuka Registry Editor, kami klik untuk mengembangkan [HKEY_CURRENT_USERSoftwareMicrosoftWindowsCurrentVersionExplorer], dan kemudian lihat jika terdapat item Serialize dalam direktori Jika tidak, kami boleh klik kanan Explorer, buat item baharu dan namakannya Serialize. 3. Kemudian klik Serialize, kemudian klik kanan ruang kosong dalam anak tetingkap kanan, cipta nilai bit DWORD (32) baharu dan namakannya Bintang

Penerangan terperinci tentang kemahiran penggunaan simbol √ dalam kotak perkataan Penerangan terperinci tentang kemahiran penggunaan simbol √ dalam kotak perkataan Mar 25, 2024 pm 10:30 PM

Penjelasan terperinci tentang petua menggunakan simbol √ dalam kotak Word Dalam kerja dan kajian harian, kita selalunya perlu menggunakan Word untuk penyuntingan dan penataan dokumen. Antaranya, simbol √ adalah simbol biasa, yang biasanya bermaksud "betul". Menggunakan simbol √ dalam kotak Word boleh membantu kami menyampaikan maklumat dengan lebih jelas dan meningkatkan profesionalisme dan keindahan dokumen. Seterusnya, kami akan memperkenalkan secara terperinci kemahiran menggunakan simbol √ dalam kotak Word, dengan harapan dapat membantu semua orang. 1. Masukkan simbol √ Dalam Word, terdapat banyak cara untuk memasukkan simbol √. satu

See all articles