首頁  >  文章  >  web前端  >  漸進式 Web 應用程式:Web 開發的未來

漸進式 Web 應用程式:Web 開發的未來

PHPz
PHPz原創
2024-09-05 06:48:07695瀏覽

Progressive Web apps: O futuro do desenvolvimento web

關於 PWA 的熱門話題是什麼?

想像一下:您在地鐵上,嘗試用手機訪問網站,但網路訊號不斷下降。令人沮喪,對吧?
這就是漸進式 Web 應用程式的用武之地,它是網路世界的超級英雄。它可以離線工作,以閃電般的速度加載,甚至可以發送通知。這就像賦予您的網站超能力!

PWA 的起源

讓我們回到過去(例如 2015 年),選項是:建立一個網站或建立一個應用程式。這就像在自行車或汽車之間進行選擇一樣。然後谷歌的一些聰明人想,「為什麼不兩者都做呢?」於是,PWA 誕生了!

讓我們建立我們的第一個 PWA:開始冒險

讓我們捲起袖子,一起建造一個簡單的 PWA。
讓我們創建一個“糟糕的笑話”應用程序,因為誰不喜歡糟糕的笑話呢?

第 1 部分:基礎知識 - 只是一個簡單的網頁

首先,讓我們建立一些基本的 HTML。這是我們的“自行車” - 它可以工作,但還不是超級強大。

<!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>

第 2 部分:添加一些風格 - 因為每個糟糕的笑話都需要好看。

讓我們加入一點 CSS 以使我們的應用程式更加優雅:

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;
}

第 3 部分:javascript 的魔力 = 請求糟糕的笑話

現在,讓我們加入一些 JavaScript 來向將傳回笑話的 API 發出請求:

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();

第 4 步:轉變為 PWA - 一點超能力

現在,讓我們將普通網站改造成 PWA。首先,我們需要一個清單文件。建立一個名為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"
        }
    ]
}

不要忘記在 HTML 檔案中加入清單連結

<link rel="manifest" href="manifest.json">

第五步:秘密武器:Service Workers

Service Workers 就像網路上隱形的小管家。他們快取您的資產,甚至可以離線工作。建立一個名為 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))
    );
});

現在,在您的 app.js 檔案中註冊 Service Worker

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));
    });
}

測試 PWA 超能力

  • 離線模式:關閉網路並重新整理頁面。您的應用程式應該仍然可以運行!
  • 安裝提示:在支援的瀏覽器中,您將看到安裝 PWA 的選項。
  • Lighthouse Audit:使用 Chrome 的 Lighthouse 工具來檢查你的 PWA 的超能力。

未來是進步的

恭喜!您剛剛建置了第一個 PWA。這就像看著您的孩子踏出第一步,不是嗎? (說到糟糕的笑話...)

隨著我們邁向 2024 年,PWA 變得越來越強大。他們可以存取設備功能、離線工作並提供類似應用程式的體驗,而無需使用應用程式商店。

因此,下次有人問您是否可以創建網站或應用程式時,您可以說:「為什麼不能兩者都做呢?」並向他們介紹 PWA 的奇妙世界!

製作人員

漸進式 Web 應用程式:Web 開發的未來,最初由 Baransel 編寫

感謝您閱讀這篇文章。我希望能為您提供一些有用的信息。如果是這樣,如果您推薦這篇文章並點擊 ♥ 按鈕,以便更多人可以看到這篇文章,我將非常高興。

以上是漸進式 Web 應用程式:Web 開發的未來的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn