


Penjelasan terperinci tentang kemahiran pemasa_javascript lanjutan javascript
setTimeout() dan setInterval() boleh digunakan untuk mencipta pemasa dan penggunaan asasnya tidak akan diperkenalkan di sini. Di sini kami terutamanya memperkenalkan baris gilir kod javascript. Tiada kod dalam JavaScript dilaksanakan serta-merta, ia dilaksanakan sebaik sahaja proses melahu. Oleh itu, masa yang ditetapkan dalam pemasa tidak bermakna masa pelaksanaan mesti sepadan, tetapi ini bermakna kod akan ditambah pada baris gilir untuk menunggu selepas selang masa yang ditentukan. Jika tiada apa-apa lagi dalam baris gilir pada masa ini, maka kod ini akan dilaksanakan, dan ia akan kelihatan seolah-olah kod itu dilaksanakan pada titik masa yang ditentukan dengan tepat. Jadi beberapa masalah akan timbul.
Pemasa ulangan
Biasanya, kami menggunakan kaedah setInterval untuk melaksanakan sekeping kod tertentu pada selang masa yang sama berulang kali. Tetapi terdapat dua masalah dengan menggunakan kaedah ini: yang pertama ialah beberapa selang akan dilangkau; yang kedua ialah selang antara pelaksanaan kod untuk berbilang pemasa mungkin lebih kecil daripada yang dijangkakan.
Di sini, mari kita ambil contoh: Jika pengendali acara onclick menggunakan setInterval untuk menetapkan pemasa berulang dengan selang 200ms, jika pengendali acara mengambil masa 300ms untuk diselesaikan, ia akan melangkau selang masa dan menjalankan kod pemasa.
Kita juga boleh mendapatkan kesimpulan melalui kod berikut:
//重复定时器 var i =0; setInterval(function(){ //如果事件处理时间长于间隔时间 i++; for(var j=0;j<100000000;j++){} document.write(i+' '); },100); //可以明显感觉到时间间隔不相等 为了避免这种时间间隔的问题,我们可以采用链式调用setTimeout方法来取代setInterval。 //可以采用链式调用setTimeout来取代setInterval var i = 0; setTimeout(function(){ //处理内容 i++; for(var j=0;j<100000000;j++){} document.write(i+' '); // setTimeout(arguments.callee,100); },100); //这样处理效果明显好多了。
Pemasa baharu dibuat setiap kali fungsi dilaksanakan Panggilan setTimeout kedua menggunakan arguments.callee untuk mendapatkan rujukan kepada fungsi yang sedang dilaksanakan dan menetapkan pemasa lain untuknya. Ini dilakukan supaya tiada kod pemasa baharu akan dimasukkan ke dalam baris gilir sehingga kod pemasa sebelumnya dilaksanakan, memastikan bahawa tidak akan ada sebarang selang masa yang hilang dan sekurang-kurangnya masa yang ditentukan akan menunggu sebelum kod pemasa seterusnya dilaksanakan. selang waktu untuk mengelakkan larian berterusan. Ia boleh dikatakan bahawa ia membunuh dua burung dengan satu batu Pada masa kini, animasi dalam rangka kerja arus perdana umumnya melaksanakan pemasaan berulang dengan cara ini.
Fungsi pendikit
Pemasa bukan sahaja digunakan untuk pemasaan, tetapi juga boleh digunakan untuk melegakan tekanan pada pelayar. Sesetengah pengiraan dan pemprosesan dalam penyemak imbas adalah lebih mahal daripada yang lain Sebagai contoh, operasi DOM memerlukan lebih banyak memori dan masa CPU Penggunaan berterusan terlalu banyak operasi DOM boleh menyebabkan penyemak imbas hang atau ranap.
Idea asas pendikitan fungsi ialah kod tertentu tidak boleh dilaksanakan secara berterusan dan berulang kali tanpa gangguan. Kali pertama fungsi dipanggil, pemasa dicipta untuk menjalankan kod selepas selang waktu tertentu. Apabila fungsi dipanggil kali kedua, ia mengosongkan pemasa sebelumnya dan menetapkan satu. Tujuannya adalah untuk melaksanakan fungsi semula selepas permintaan untuk melaksanakan fungsi berhenti untuk satu tempoh masa.
Kodnya adalah seperti berikut:
//再来谈谈函数节流 function throttle(method,context){ clearTimeout(method.tId); method.tId = setTimeout(function(){ method.call(context); },100); } //该函数接受两个参数,第一个是要执行的函数,第二个是作用域。 //使用方法demo //未使用情况: window.onresize = function(){ var div = document.getElementByTagName(body); div.style.height = div.offsetWidth +'px'; } //使用情况; function resizeDiv(){ var div = document.getElementByTagName(body); div.style.height = div.offsetWidth +'px'; } window.onresize = function(){ throttle(resizeDiv); }; //只要代码是周期性执行的,都应该使用节流。
Ini tidak memberikan pengguna perasaan yang hebat, tetapi ia mengurangkan banyak tekanan pada penyemak imbas Pendikitan fungsi juga merupakan salah satu teknik yang biasa digunakan dalam banyak rangka kerja.
Di atas ialah pengenalan yang berkaitan dengan pemasa lanjutan JavaScript saya harap ia akan membantu pembelajaran semua orang.

Memahami bagaimana enjin JavaScript berfungsi secara dalaman adalah penting kepada pemaju kerana ia membantu menulis kod yang lebih cekap dan memahami kesesakan prestasi dan strategi pengoptimuman. 1) aliran kerja enjin termasuk tiga peringkat: parsing, penyusun dan pelaksanaan; 2) Semasa proses pelaksanaan, enjin akan melakukan pengoptimuman dinamik, seperti cache dalam talian dan kelas tersembunyi; 3) Amalan terbaik termasuk mengelakkan pembolehubah global, mengoptimumkan gelung, menggunakan const dan membiarkan, dan mengelakkan penggunaan penutupan yang berlebihan.

Python lebih sesuai untuk pemula, dengan lengkung pembelajaran yang lancar dan sintaks ringkas; JavaScript sesuai untuk pembangunan front-end, dengan lengkung pembelajaran yang curam dan sintaks yang fleksibel. 1. Sintaks Python adalah intuitif dan sesuai untuk sains data dan pembangunan back-end. 2. JavaScript adalah fleksibel dan digunakan secara meluas dalam pengaturcaraan depan dan pelayan.

Python dan JavaScript mempunyai kelebihan dan kekurangan mereka sendiri dari segi komuniti, perpustakaan dan sumber. 1) Komuniti Python mesra dan sesuai untuk pemula, tetapi sumber pembangunan depan tidak kaya dengan JavaScript. 2) Python berkuasa dalam bidang sains data dan perpustakaan pembelajaran mesin, sementara JavaScript lebih baik dalam perpustakaan pembangunan dan kerangka pembangunan depan. 3) Kedua -duanya mempunyai sumber pembelajaran yang kaya, tetapi Python sesuai untuk memulakan dengan dokumen rasmi, sementara JavaScript lebih baik dengan MDNWebDocs. Pilihan harus berdasarkan keperluan projek dan kepentingan peribadi.

Peralihan dari C/C ke JavaScript memerlukan menyesuaikan diri dengan menaip dinamik, pengumpulan sampah dan pengaturcaraan asynchronous. 1) C/C adalah bahasa yang ditaip secara statik yang memerlukan pengurusan memori manual, manakala JavaScript ditaip secara dinamik dan pengumpulan sampah diproses secara automatik. 2) C/C perlu dikumpulkan ke dalam kod mesin, manakala JavaScript adalah bahasa yang ditafsirkan. 3) JavaScript memperkenalkan konsep seperti penutupan, rantaian prototaip dan janji, yang meningkatkan keupayaan pengaturcaraan fleksibiliti dan asynchronous.

Enjin JavaScript yang berbeza mempunyai kesan yang berbeza apabila menguraikan dan melaksanakan kod JavaScript, kerana prinsip pelaksanaan dan strategi pengoptimuman setiap enjin berbeza. 1. Analisis leksikal: Menukar kod sumber ke dalam unit leksikal. 2. Analisis Tatabahasa: Menjana pokok sintaks abstrak. 3. Pengoptimuman dan Penyusunan: Menjana kod mesin melalui pengkompil JIT. 4. Jalankan: Jalankan kod mesin. Enjin V8 mengoptimumkan melalui kompilasi segera dan kelas tersembunyi, Spidermonkey menggunakan sistem kesimpulan jenis, menghasilkan prestasi prestasi yang berbeza pada kod yang sama.

Aplikasi JavaScript di dunia nyata termasuk pengaturcaraan sisi pelayan, pembangunan aplikasi mudah alih dan Internet of Things Control: 1. Pengaturcaraan sisi pelayan direalisasikan melalui node.js, sesuai untuk pemprosesan permintaan serentak yang tinggi. 2. Pembangunan aplikasi mudah alih dijalankan melalui reaktnatif dan menyokong penggunaan silang platform. 3. Digunakan untuk kawalan peranti IoT melalui Perpustakaan Johnny-Five, sesuai untuk interaksi perkakasan.

Saya membina aplikasi SaaS multi-penyewa berfungsi (aplikasi edTech) dengan alat teknologi harian anda dan anda boleh melakukan perkara yang sama. Pertama, apakah aplikasi SaaS multi-penyewa? Aplikasi SaaS Multi-penyewa membolehkan anda melayani beberapa pelanggan dari Sing

Artikel ini menunjukkan integrasi frontend dengan backend yang dijamin oleh permit, membina aplikasi edtech SaaS yang berfungsi menggunakan Next.Js. Frontend mengambil kebenaran pengguna untuk mengawal penglihatan UI dan memastikan permintaan API mematuhi dasar peranan


Alat AI Hot

Undresser.AI Undress
Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover
Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool
Gambar buka pakaian secara percuma

Clothoff.io
Penyingkiran pakaian AI

AI Hentai Generator
Menjana ai hentai secara percuma.

Artikel Panas

Alat panas

Versi Mac WebStorm
Alat pembangunan JavaScript yang berguna

Notepad++7.3.1
Editor kod yang mudah digunakan dan percuma

EditPlus versi Cina retak
Saiz kecil, penyerlahan sintaks, tidak menyokong fungsi gesaan kod

SublimeText3 versi Cina
Versi Cina, sangat mudah digunakan

VSCode Windows 64-bit Muat Turun
Editor IDE percuma dan berkuasa yang dilancarkan oleh Microsoft