Apl Web Progresif: Masa depan pembangunan web
Apakah yang menjadi bualan tentang PWA?
Bayangkan ini: Anda berada di dalam kereta api bawah tanah, anda cuba mengakses tapak web pada telefon bimbit anda, tetapi isyarat internet terus jatuh. Mengecewakan, bukan?
Di sinilah Progressive Web App masuk, wira-wira dunia web. Ia berfungsi di luar talian, dimuatkan pada kelajuan kilat, dan juga menghantar pemberitahuan. Ia seperti memberi tapak web anda kuasa besar!
Asal usul PWA
Mari kita kembali ke masa lalu (seperti, pada 2015), pilihannya ialah: bina tapak web atau bina apl. Itu seperti memilih antara basikal atau kereta. Kemudian beberapa orang pintar di Google berfikir, "Mengapa tidak kedua-duanya?" dan dengan itu, PWA dilahirkan!
Mari bina PWA pertama kami: Memulakan pengembaraan
Mari kita menyingsing lengan baju kita dan membina PWA mudah bersama-sama.
Mari buat aplikasi "Bad Jokes" kerana, siapa yang tidak suka jenaka yang buruk?
Bahagian 1: Asas - Hanya halaman web yang ringkas
Mula-mula, mari kita buat beberapa HTML asas. Ini ialah "basikal" kami - ia berfungsi, tetapi ia belum terlalu berkuasa.
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>Dad Jokes PWA</title> <link rel="stylesheet" href="style.css"> </head> <body> <h1>Dad Jokes</h1> <p id="joke">Click the button for a dad joke!</p> <button id="jokeBtn">Get New Joke</button> <script src="app.js"></script> </body> </html>
Bahagian 2: Tambah beberapa gaya - Kerana setiap jenaka yang buruk memerlukan penampilan yang baik.
Mari tambahkan sentuhan CSS untuk menjadikan aplikasi kami lebih elegan:
body { font-family: Arial, sans-serif; text-align: center; padding: 20px; } #joke { margin: 20px 0; font-style: italic; } button { padding: 10px 20px; font-size: 16px; cursor: pointer; }
Bahagian 3: Keajaiban javascript = Minta jenaka buruk
Sekarang, mari tambah sedikit JavaScript untuk membuat permintaan kepada API yang akan mengembalikan jenaka:
const jokeElement = document.getElementById('joke'); const jokeBtn = document.getElementById('jokeBtn'); async function fetchJoke() { try { const response = await fetch('https://icanhazdadjoke.com/', { headers: { 'Accept': 'application/json' } }); const data = await response.json(); jokeElement.textContent = data.joke; } catch (error) { jokeElement.textContent = "Oops! Looks like the joke got stuck in dad's old briefcase."; } } jokeBtn.addEventListener('click', fetchJoke); // Faz o request na API quando a página carrega fetchJoke();
Langkah 4: Berubah menjadi PWA - Sekumpulan kuasa besar
Sekarang, mari tukar laman web biasa kami menjadi PWA. Pertama, kita memerlukan fail manifes. Buat fail bernama manifest.json:
{ "name": "Dad Jokes PWA", "short_name": "DadJokes", "start_url": "/", "display": "standalone", "background_color": "#ffffff", "theme_color": "#4285f4", "icons": [ { "src": "icon.png", "sizes": "192x192", "type": "image/png" } ] }
Jangan lupa tambahkan pautan manifes dalam fail HTML
<link rel="manifest" href="manifest.json">
Langkah 5: Sos rahsia: Pekerja Perkhidmatan
Pekerja perkhidmatan adalah seperti butler kecil yang tidak kelihatan di web. Mereka cache aset anda dan juga berfungsi di luar talian. Buat fail bernama service-worker.js:
const CACHE_NAME = 'dad-jokes-cache-v1'; const urlsToCache = [ '/', '/index.html', '/style.css', '/app.js', '/icon.png' ]; self.addEventListener('install', event => { event.waitUntil( caches.open(CACHE_NAME) .then(cache => cache.addAll(urlsToCache)) ); }); self.addEventListener('fetch', event => { event.respondWith( caches.match(event.request) .then(response => response || fetch(event.request)) ); });
Sekarang, daftarkan pekerja perkhidmatan dalam fail app.js anda
if ('serviceWorker' in navigator) { window.addEventListener('load', () => { navigator.serviceWorker.register('/service-worker.js') .then(registration => console.log('ServiceWorker registered')) .catch(error => console.log('ServiceWorker registration failed:', error)); }); }
Menguji Kuasa Besar PWA
- Mod Luar Talian: Matikan Internet dan muat semula halaman. Apl anda sepatutnya masih berfungsi!
- Gesaan pemasangan: Dalam penyemak imbas yang disokong, anda akan melihat pilihan untuk memasang PWA anda.
- Audit Rumah Api: Gunakan alat Rumah Api Chrome untuk menyemak kuasa besar PWA anda.
Masa depan adalah progresif
Tahniah! Anda baru sahaja membina PWA pertama anda. Ia seperti melihat anak anda mengambil langkah pertama, bukan? (Bercakap tentang lawak buruk...)
Apabila kita menuju ke tahun 2024, PWA menjadi lebih berkuasa. Mereka boleh mengakses ciri peranti, bekerja di luar talian dan memberikan pengalaman seperti apl tanpa perlu menggunakan kedai aplikasi.
Jadi, apabila seseorang bertanya kepada anda sama ada mereka boleh membuat tapak web atau apl, anda boleh berkata: “Mengapa tidak kedua-duanya?” dan memperkenalkan mereka kepada dunia PWA yang mengagumkan!
Kredit
Apl Web Progresif: Masa Depan Pembangunan Web, asalnya ditulis oleh Baransel
Terima kasih kerana membaca artikel ini. Saya harap saya dapat memberikan anda beberapa maklumat yang berguna. Jika ya, saya sangat gembira jika anda mengesyorkan siaran ini dan klik butang ♥ supaya lebih ramai orang dapat melihatnya.
Atas ialah kandungan terperinci Apl Web Progresif: Masa depan pembangunan web. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Alat AI Hot

Undress AI Tool
Gambar buka pakaian secara percuma

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

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

Clothoff.io
Penyingkiran pakaian AI

Video Face Swap
Tukar muka dalam mana-mana video dengan mudah menggunakan alat tukar muka AI percuma kami!

Artikel Panas

Alat panas

Notepad++7.3.1
Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina
Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1
Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6
Alat pembangunan web visual

SublimeText3 versi Mac
Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Jenis Keadaan Lanjutan TypeScript Melaksanakan penghakiman logik antara jenis melalui Textendsu? X: Y Sintaks. Keupayaan terasnya ditunjukkan dalam jenis keadaan yang diedarkan, kesimpulan jenis kesimpulan dan pembinaan alat jenis kompleks. 1. Jenis bersyarat diedarkan dalam parameter jenis kosong dan secara automatik boleh memecah jenis bersama, seperti toarray untuk mendapatkan rentetan [] | number []. 2. Menggunakan Pengagihan untuk Membina Alat Penapisan dan Pengekstrakan: Tidak termasuk Kecualikan Jenis Melalui Textendsu? Tidak pernah: T, Ekstrak Ekstrak Persamaan melalui Textendsu? 3

Microfrontendssolvescalingchallengesinlargeteamsbyenablingindependentdevelopmentanddeployment.1) chooseanInintegrationstration: useModulefederationInwebPack5formruntimeLoadingandtrueindectivence, Build-timeIntegrationForseMlesetups, Oriframes/Web

varisfunction-scoped, canbereassigned, omredwithundefined, andattachedtotheglobalwindowobject; 2.Letandconstareblock-scoped, withletallowingreassignmentandconstnotallowingit, everconstobjectscanhaveMutabeTerSties;

Artikel ini meneroka secara mendalam bagaimana untuk menghasilkan teka-teki yang dapat diselesaikan secara automatik untuk permainan teka-teki double-choco. Kami akan memperkenalkan struktur data yang cekap - objek sel berdasarkan grid 2D yang mengandungi maklumat sempadan, warna, dan keadaan. Atas dasar ini, kami akan menghuraikan algoritma pengiktirafan blok rekursif (serupa dengan carian kedalaman pertama) dan bagaimana untuk mengintegrasikannya ke dalam proses penjanaan teka-teki berulang untuk memastikan teka-teki yang dihasilkan memenuhi peraturan permainan dan dapat diselesaikan. Artikel ini akan menyediakan kod sampel dan membincangkan pertimbangan utama dan strategi pengoptimuman dalam proses penjanaan.

Optionalchaining (?) InjavaScriptSafelyAccessSnestedPropertiesByReturningundefinedifanypartofthechainisnullorundefined, mencegahRuntimeerrors.1.itallowssafeaccesstodeperlynestedobjectproperties?

Kaedah yang paling biasa dan disyorkan untuk membuang kelas CSS dari elemen DOM menggunakan JavaScript adalah melalui kaedah mengeluarkan () harta klasik. 1. Gunakan elemen.classlist.remove ('className') untuk memadamkan satu kelas tunggal atau berganda dengan selamat, dan tiada kesilapan akan dilaporkan walaupun kelas tidak wujud; 2. Kaedah alternatif adalah untuk mengendalikan harta kelas secara langsung dan mengeluarkan kelas dengan penggantian rentetan, tetapi mudah untuk menyebabkan masalah disebabkan oleh pemprosesan yang tidak tepat atau pemprosesan ruang yang tidak betul, jadi tidak disyorkan; 3. 4.Classlist

Sintaks kelas JavaScript adalah gula sintaks yang diwarisi oleh prototaip. 1. Kelas yang ditakrifkan oleh kelas pada dasarnya adalah fungsi dan kaedah ditambah kepada prototaip; 2. Contohnya mencari kaedah melalui rantaian prototaip; 3. Kaedah statik tergolong dalam kelas itu sendiri; 4. Memperluas mewarisi melalui rantaian prototaip, dan lapisan asas masih menggunakan mekanisme prototaip. Kelas tidak mengubah intipati warisan prototaip JavaScript.

Pertama, gunakan NPXStoryBookInit untuk memasang dan mengkonfigurasi buku cerita dalam projek React, jalankan npmrunstorybook untuk memulakan pelayan pembangunan tempatan; 2. Mengatur struktur fail komponen mengikut fungsi atau jenis, dan buat fail .story.js yang sepadan untuk menentukan keadaan yang berbeza dalam setiap direktori komponen; 3. Gunakan sistem args dan kawalan buku cerita untuk mencapai pelarasan atribut dinamik untuk memudahkan ujian pelbagai keadaan interaktif; 4. Gunakan fail MDX untuk menulis dokumen teks yang kaya yang mengandungi spesifikasi reka bentuk, arahan kebolehaksesan, dan lain -lain, dan menyokong memuatkan MDX melalui konfigurasi; 5. Tentukan token reka bentuk melalui tema.js dan gunakan pratonton.js
