{"id":8939,"date":"2025-04-05T03:06:48","date_gmt":"2025-04-05T03:06:48","guid":{"rendered":"https:\/\/nanamedia.org\/?p=8939"},"modified":"2025-04-05T03:06:48","modified_gmt":"2025-04-05T03:06:48","slug":"%d9%85%d8%b4%d8%a7%d8%ac%d8%b1%d8%a9-%d8%a8%d8%b3%d8%a8%d8%a8-%d9%83%d9%84%d8%a8-%d8%aa%d8%ab%d9%8a%d8%b1-%d8%b6%d8%ac%d8%a9-%d9%81%d9%8a-%d9%85%d8%b5%d8%b1","status":"publish","type":"post","link":"https:\/\/nanamedia.org\/ar\/2025\/04\/05\/%d9%85%d8%b4%d8%a7%d8%ac%d8%b1%d8%a9-%d8%a8%d8%b3%d8%a8%d8%a8-%d9%83%d9%84%d8%a8-%d8%aa%d8%ab%d9%8a%d8%b1-%d8%b6%d8%ac%d8%a9-%d9%81%d9%8a-%d9%85%d8%b5%d8%b1\/","title":{"rendered":"\u0645\u0634\u0627\u062c\u0631\u0629 \u0628\u0633\u0628\u0628 \u0643\u0644\u0628 \u062a\u062b\u064a\u0631 \u0636\u062c\u0629 \u0641\u064a \u0645\u0635\u0631"},"content":{"rendered":"<h1>\u062a\u0637\u0628\u064a\u0642\u0627\u062a Fetch API \u0648 Service Worker<\/h1>\n<h2>\u0645\u0642\u062f\u0645\u0629<\/h2>\n<p>\u062a\u0639\u062f\u0651 Fetch API \u0648 Service Worker technologies \u062d\u062f\u064a\u062b\u0629 \u0648\u0645\u062a\u0637\u0648\u0631\u0629 \u0641\u064a \u062a\u0637\u0648\u064a\u0631 \u0627\u0644\u0648\u064a\u0628\u060c \u0648\u062a\u0633\u0647\u0645 \u0641\u064a \u062a\u062d\u0633\u064a\u0646 \u062a\u062c\u0631\u0628\u0629 \u0627\u0644\u0645\u0633\u062a\u062e\u062f\u0645 \u0648\u062a\u062d\u0642\u064a\u0642 \u062a\u062d\u0633\u064a\u0646\u0627\u062a \u0641\u064a \u0623\u062f\u0627\u0621 \u0627\u0644\u062a\u0637\u0628\u064a\u0642\u0627\u062a. \u0641\u064a \u0647\u0630\u0627 \u0627\u0644\u0645\u0642\u0627\u0644\u060c \u0633\u0646\u0633\u062a\u0643\u0634\u0641 \u0643\u064a\u0641 \u064a\u0645\u0643\u0646 \u0627\u0633\u062a\u062e\u062f\u0627\u0645 Fetch API \u0648 Service Worker \u0645\u0639\u064b\u0627 \u0644\u062a\u062d\u0633\u064a\u0646 \u0623\u062f\u0627\u0621 \u062a\u0637\u0628\u064a\u0642\u0627\u062a \u0627\u0644\u0648\u064a\u0628 \u0648\u062a\u062d\u0642\u064a\u0642 \u062a\u062c\u0631\u0628\u0629 \u0645\u0633\u062a\u062e\u062f\u0645 \u0623\u0641\u0636\u0644.<\/p>\n<h2>Fetch API<\/h2>\n<p>Fetch API \u0647\u064a \u0648\u0627\u062c\u0647\u0629 \u0628\u0631\u0645\u062c\u0629 \u062a\u0637\u0628\u064a\u0642\u0627\u062a (API) \u0644\u0645\u062a\u0635\u0641\u062d\u0627\u062a \u0627\u0644\u0648\u064a\u0628\u060c \u062a\u0633\u0645\u062d \u0644\u0644\u0645\u0637\u0648\u0631\u064a\u0646 \u0628\u0625\u0631\u0633\u0627\u0644 \u0637\u0644\u0628\u0627\u062a HTTP \u0648\u062a\u0646\u0641\u064a\u0630 \u0639\u0645\u0644\u064a\u0627\u062a \u0627\u0644\u0634\u0628\u0643\u0629 \u0628\u0633\u0647\u0648\u0644\u0629. \u062a\u062a\u064a\u062d Fetch API \u0644\u0644\u0645\u0637\u0648\u0631\u064a\u0646 \u0627\u0644\u062a\u062d\u0643\u0645 \u0627\u0644\u0643\u0627\u0645\u0644 \u0641\u064a \u0637\u0644\u0628\u0627\u062a \u0627\u0644\u0634\u0628\u0643\u0629\u060c \u0645\u0645\u0627 \u064a\u0633\u0645\u062d \u0644\u0647\u0645 \u0628\u062a\u062d\u0633\u064a\u0646 \u0623\u062f\u0627\u0621 \u0627\u0644\u062a\u0637\u0628\u064a\u0642\u0627\u062a \u0648\u062a\u0646\u0641\u064a\u0630 \u0645\u0647\u0627\u0645 \u0645\u0639\u0642\u062f\u0629 \u0628\u0633\u0647\u0648\u0644\u0629 \u0623\u0643\u0628\u0631.<\/p>\n<h3>\u0627\u0633\u062a\u062e\u062f\u0627\u0645 Fetch API<\/h3>\n<p>\u064a\u0645\u0643\u0646 \u0627\u0633\u062a\u062e\u062f\u0627\u0645 Fetch API \u0644\u0623\u062f\u0627\u0621 \u0627\u0644\u0639\u062f\u064a\u062f \u0645\u0646 \u0627\u0644\u0645\u0647\u0627\u0645\u060c \u0628\u0645\u0627 \u0641\u064a \u0630\u0644\u0643:<\/p>\n<ul>\n<li>\u0625\u0631\u0633\u0627\u0644 \u0637\u0644\u0628\u0627\u062a HTTP GET \u0648 POST \u0648 PUT \u0648 DELETE<\/li>\n<li>\u0625\u0636\u0627\u0641\u0629 \u0631\u0624\u0648\u0633 \u0627\u0644\u0637\u0644\u0628 \u0648\u0627\u0644\u0627\u0633\u062a\u062c\u0627\u0628\u0629<\/li>\n<li>\u0627\u0644\u062a\u0639\u0627\u0645\u0644 \u0645\u0639 \u0627\u0644\u0628\u064a\u0627\u0646\u0627\u062a \u0627\u0644\u0645\u0631\u0633\u0644\u0629 \u0641\u064a \u0627\u0644\u062c\u0633\u0645<\/li>\n<li>\u062f\u0639\u0645 Promises \u0648 Async\/Await<\/li>\n<\/ul>\n<h3>\u0645\u062b\u0627\u0644 \u0639\u0644\u0649 Fetch API<\/h3>\n<pre><code class=\"language-javascript\">fetch('https:\/\/api.example.com\/data')\n  .then(response =&gt; response.json())\n  .then(data =&gt; console.log(data))\n  .catch(error =&gt; console.error(error));<\/code><\/pre>\n<p>\u0641\u064a \u0647\u0630\u0627 \u0627\u0644\u0645\u062b\u0627\u0644\u060c \u0646\u0633\u062a\u062e\u062f\u0645 Fetch API \u0644\u0625\u0631\u0633\u0627\u0644 \u0637\u0644\u0628 GET \u0625\u0644\u0649 URL \u0645\u0639\u064a\u0646\u060c \u062b\u0645 \u0646\u0639\u0627\u0644\u062c \u0627\u0644\u0628\u064a\u0627\u0646\u0627\u062a \u0627\u0644\u0645\u0631\u0633\u0644\u0629 \u0641\u064a \u0627\u0644\u062c\u0633\u0645 \u0643\u062c\u0633\u0648\u0646\u060c \u0648\u0623\u062e\u064a\u0631\u0627\u064b \u0646\u0637\u0628\u0639 \u0627\u0644\u0628\u064a\u0627\u0646\u0627\u062a \u0641\u064a \u06a9\u0646\u0633\u0648\u0644 \u0627\u0644\u0645\u062a\u0635\u0641\u062d.<\/p>\n<h2>Service Worker<\/h2>\n<p>Service Worker \u0647\u0648 \u0633\u0643\u0631\u064a\u0628\u062a \u064a\u0639\u0645\u0644 \u0641\u064a \u0627\u0644\u062e\u0644\u0641\u064a\u0629\u060c \u0648\u064a\u0645\u0643\u0646\u0647 \u0627\u0644\u062a\u062d\u0643\u0645 \u0641\u064a \u0637\u0644\u0628\u0627\u062a \u0627\u0644\u0634\u0628\u0643\u0629 \u0648\u062a\u062e\u0632\u064a\u0646 \u0627\u0644\u0628\u064a\u0627\u0646\u0627\u062a \u0641\u064a \u0627\u0644\u0630\u0627\u0643\u0631\u0629 \u0627\u0644\u0645\u062d\u0644\u064a\u0629. \u064a\u0645\u0643\u0646 \u0627\u0633\u062a\u062e\u062f\u0627\u0645 Service Worker \u0644\u062a\u062d\u0633\u064a\u0646 \u0623\u062f\u0627\u0621 \u0627\u0644\u062a\u0637\u0628\u064a\u0642\u0627\u062a \u0648\u062a\u0646\u0641\u064a\u0630 \u0645\u0647\u0627\u0645 \u0645\u0639\u0642\u062f\u0629 \u0628\u0633\u0647\u0648\u0644\u0629 \u0623\u0643\u0628\u0631.<\/p>\n<h3>\u0627\u0633\u062a\u062e\u062f\u0627\u0645 Service Worker<\/h3>\n<p>\u064a\u0645\u0643\u0646 \u0627\u0633\u062a\u062e\u062f\u0627\u0645 Service Worker \u0644\u0623\u062f\u0627\u0621 \u0627\u0644\u0639\u062f\u064a\u062f \u0645\u0646 \u0627\u0644\u0645\u0647\u0627\u0645\u060c \u0628\u0645\u0627 \u0641\u064a \u0630\u0644\u0643:<\/p>\n<ul>\n<li>\uce90\uc2f1 \u0627\u0644\u0628\u064a\u0627\u0646\u0627\u062a \u0641\u064a \u0627\u0644\u0630\u0627\u0643\u0631\u0629 \u0627\u0644\u0645\u062d\u0644\u064a\u0629<\/li>\n<li>\u0627\u0644\u062a\u062d\u0643\u0645 \u0641\u064a \u0637\u0644\u0628\u0627\u062a \u0627\u0644\u0634\u0628\u0643\u0629<\/li>\n<li>\u062a\u0646\u0641\u064a\u0630 \u0645\u0647\u0627\u0645 \u0641\u064a \u0627\u0644\u062e\u0644\u0641\u064a\u0629<\/li>\n<li>\u062f\u0639\u0645 Push Notifications<\/li>\n<\/ul>\n<h3>\u0645\u062b\u0627\u0644 \u0639\u0644\u0649 Service Worker<\/h3>\n<pre><code class=\"language-javascript\">\/\/ registration.js\nnavigator.serviceWorker.register('sw.js')\n  .then(registration =&gt; console.log('Service Worker registered'))\n  .catch(error =&gt; console.error('Service Worker registration failed'));<\/code><\/pre>\n<pre><code class=\"language-javascript\">\/\/ sw.js\nself.addEventListener('install', event =&gt; {\n  event.waitUntil(\n    caches.open('my-cache')\n      .then(cache =&gt; cache.addAll([\n        '\/index.html',\n        '\/style.css',\n        '\/script.js',\n      ]))\n  );\n});\n\nself.addEventListener('fetch', event =&gt; {\n  event.respondWith(\n    caches.match(event.request)\n      .then(response =&gt; response || fetch(event.request))\n  );\n});<\/code><\/pre>\n<p>\u0641\u064a \u0647\u0630\u0627 \u0627\u0644\u0645\u062b\u0627\u0644\u060c \u0646\u0633\u062c\u0644 Service Worker \u0641\u064a \u0627\u0644\u0645\u0644\u0641 <code>registration.js<\/code>\u060c \u062b\u0645 \u0646\u0639\u0631\u0651\u0641 \u0627\u0644\u0633\u0643\u0631\u064a\u0628\u062a \u0641\u064a \u0627\u0644\u0645\u0644\u0641 <code>sw.js<\/code>. \u0641\u064a \u0627\u0644\u0633\u0643\u0631\u064a\u0628\u062a\u060c \u0646\u0633\u062a\u062e\u062f\u0645 \u0627\u0644\u062d\u062f\u062b <code>install<\/code> \u0644\u062a\u062e\u0632\u064a\u0646 \u0627\u0644\u0628\u064a\u0627\u0646\u0627\u062a \u0641\u064a \u0627\u0644\u0630\u0627\u0643\u0631\u0629 \u0627\u0644\u0645\u062d\u0644\u064a\u0629\u060c \u062b\u0645 \u0646\u0633\u062a\u062e\u062f\u0645 \u0627\u0644\u062d\u062f\u062b <code>fetch<\/code> \u0644\u0644\u062a\u062d\u0643\u0645 \u0641\u064a \u0637\u0644\u0628\u0627\u062a \u0627\u0644\u0634\u0628\u0643\u0629.<\/p>\n<h2>\u0627\u0633\u062a\u062e\u062f\u0627\u0645\u0647\u0645\u0627 \u0645\u0639\u064b\u0627<\/h2>\n<p>\u064a\u0645\u0643\u0646 \u0627\u0633\u062a\u062e\u062f\u0627\u0645 Fetch API \u0648 Service Worker \u0645\u0639\u064b\u0627 \u0644\u062a\u062d\u0633\u064a\u0646 \u0623\u062f\u0627\u0621 \u0627\u0644\u062a\u0637\u0628\u064a\u0642\u0627\u062a \u0648\u062a\u0646\u0641\u064a\u0630 \u0645\u0647\u0627\u0645 \u0645\u0639\u0642\u062f\u0629 \u0628\u0633\u0647\u0648\u0644\u0629 \u0623\u0643\u0628\u0631. \u0639\u0644\u0649 \u0633\u0628\u064a\u0644 \u0627\u0644\u0645\u062b\u0627\u0644\u060c \u064a\u0645\u0643\u0646 \u0627\u0633\u062a\u062e\u062f\u0627\u0645 Fetch API \u0644\u0625\u0631\u0633\u0627\u0644 \u0637\u0644\u0628\u0627\u062a \u0627\u0644\u0634\u0628\u0643\u0629\u060c \u062b\u0645 \u0627\u0633\u062a\u062e\u062f\u0627\u0645 Service Worker \u0644\u062a\u062e\u0632\u064a\u0646 \u0627\u0644\u0628\u064a\u0627\u0646\u0627\u062a \u0641\u064a \u0627\u0644\u0630\u0627\u0643\u0631\u0629 \u0627\u0644\u0645\u062d\u0644\u064a\u0629 \u0648\u062a\u062d\u0633\u064a\u0646 \u0623\u062f\u0627\u0621 \u0627\u0644\u062a\u0637\u0628\u064a\u0642\u0627\u062a.<\/p>\n<h3>\u0645\u062b\u0627\u0644 \u0639\u0644\u0649 \u0627\u0633\u062a\u062e\u062f\u0627\u0645 Fetch API \u0648 Service Worker \u0645\u0639\u064b\u0627<\/h3>\n<pre><code class=\"language-javascript\">\/\/ main.js\nfetch('https:\/\/api.example.com\/data')\n  .then(response =&gt; response.json())\n  .then(data =&gt; {\n    \/\/ \u062a\u062e\u0632\u064a\u0646 \u0627\u0644\u0628\u064a\u0627\u0646\u0627\u062a \u0641\u064a \u0627\u0644\u0630\u0627\u0643\u0631\u0629 \u0627\u0644\u0645\u062d\u0644\u064a\u0629\n    caches.open('my-cache')\n      .then(cache =&gt; cache.put('data', data));\n  })\n  .catch(error =&gt; console.error(error));<\/code><\/pre>\n<pre><code class=\"language-javascript\">\/\/ sw.js\nself.addEventListener('fetch', event =&gt; {\n  event.respondWith(\n    caches.match(event.request)\n      .then(response =&gt; response || fetch(event.request))\n  );\n});<\/code><\/pre>\n<p>\u0641\u064a \u0647\u0630\u0627 \u0627\u0644\u0645\u062b\u0627\u0644\u060c \u0646\u0633\u062a\u062e\u062f\u0645 Fetch API \u0644\u0625\u0631\u0633\u0627\u0644 \u0637\u0644\u0628 \u0625\u0644\u0649 URL \u0645\u0639\u064a\u0646\u060c \u062b\u0645 \u0646\u0633\u062a\u062e\u062f\u0645 Service Worker \u0644\u062a\u062e\u0632\u064a\u0646 \u0627\u0644\u0628\u064a\u0627\u0646\u0627\u062a \u0641\u064a \u0627\u0644\u0630\u0627\u0643\u0631\u0629 \u0627\u0644\u0645\u062d\u0644\u064a\u0629. \u0628\u0639\u062f \u0630\u0644\u0643\u060c \u0646\u0633\u062a\u062e\u062f\u0645 Service Worker \u0644\u0644\u062a\u062d\u0643\u0645 \u0641\u064a \u0637\u0644\u0628\u0627\u062a \u0627\u0644\u0634\u0628\u0643\u0629 \u0648\u062a\u062d\u0633\u064a\u0646 \u0623\u062f\u0627\u0621 \u0627\u0644\u062a\u0637\u0628\u064a\u0642\u0627\u062a.<\/p>\n<h2>\u0627\u0644\u062e\u0644\u0627\u0635\u0629<\/h2>\n<p>Fetch API \u0648 Service Worker \u0647\u0645\u0627 \u062a\u0643\u0646\u0648\u0644\u0648\u062c\u064a\u062a\u0627\u0646 \u062d\u062f\u064a\u062b\u062a\u0627\u0646 \u0648\u0645\u062a\u0637\u0648\u0631\u062a\u0627\u0646 \u0641\u064a \u062a\u0637\u0648\u064a\u0631 \u0627\u0644\u0648\u064a\u0628\u060c \u0648\u062a\u0633\u0627\u0647\u0645\u0627\u0646 \u0641\u064a \u062a\u062d\u0633\u064a\u0646 \u062a\u062c\u0631\u0628\u0629 \u0627\u0644\u0645\u0633\u062a\u062e\u062f\u0645 \u0648\u062a\u062d\u0642\u064a\u0642 \u062a\u062d\u0633\u064a\u0646\u0627\u062a \u0641\u064a \u0623\u062f\u0627\u0621 \u0627\u0644\u062a\u0637\u0628\u064a\u0642\u0627\u062a. \u064a\u0645\u0643\u0646 \u0627\u0633\u062a\u062e\u062f\u0627\u0645 Fetch API \u0648 Service Worker \u0645\u0639\u064b\u0627 \u0644\u062a\u062d\u0633\u064a\u0646 \u0623\u062f\u0627\u0621 \u0627\u0644\u062a\u0637\u0628\u064a\u0642\u0627\u062a \u0648\u062a\u0646\u0641\u064a\u0630 \u0645\u0647\u0627\u0645 \u0645\u0639\u0642\u062f\u0629 \u0628\u0633\u0647\u0648\u0644\u0629 \u0623\u0643\u0628\u0631. \u0641\u064a \u0647\u0630\u0627 \u0627\u0644\u0645\u0642\u0627\u0644\u060c \u0627\u0633\u062a\u0639\u0631\u0636\u0646\u0627 \u0643\u064a\u0641 \u064a\u0645\u0643\u0646 \u0627\u0633\u062a\u062e\u062f\u0627\u0645 Fetch API \u0648 Service Worker \u0645\u0639\u064b\u0627 \u0644\u062a\u062d\u0642\u064a\u0642 \u062a\u062d\u0633\u064a\u0646\u0627\u062a \u0641\u064a \u0623\u062f\u0627\u0621 \u0627\u0644\u062a\u0637\u0628\u064a\u0642\u0627\u062a \u0648\u062a\u062d\u0633\u064a\u0646 \u062a\u062c\u0631\u0628\u0629 \u0627\u0644\u0645\u0633\u062a\u062e\u062f\u0645.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>\u062a\u0637\u0628\u064a\u0642\u0627\u062a Fetch API \u0648 Service Worker \u0645\u0642\u062f\u0645\u0629 \u062a\u0639\u062f\u0651 Fetch API \u0648 Service Worker technologies \u062d\u062f\u064a\u062b\u0629 \u0648\u0645\u062a\u0637\u0648\u0631\u0629 \u0641\u064a \u062a\u0637\u0648\u064a\u0631 \u0627\u0644\u0648\u064a\u0628\u060c \u0648\u062a\u0633\u0647\u0645 \u0641\u064a \u062a\u062d\u0633\u064a\u0646 \u062a\u062c\u0631\u0628\u0629 \u0627\u0644\u0645\u0633\u062a\u062e\u062f\u0645 \u0648\u062a\u062d\u0642\u064a\u0642 \u062a\u062d\u0633\u064a\u0646\u0627\u062a \u0641\u064a \u0623\u062f\u0627\u0621 \u0627\u0644\u062a\u0637\u0628\u064a\u0642\u0627\u062a. \u0641\u064a \u0647\u0630\u0627 \u0627\u0644\u0645\u0642\u0627\u0644\u060c \u0633\u0646\u0633\u062a\u0643\u0634\u0641 \u0643\u064a\u0641 \u064a\u0645\u0643\u0646 \u0627\u0633\u062a\u062e\u062f\u0627\u0645 Fetch API \u0648 Service Worker \u0645\u0639\u064b\u0627 \u0644\u062a\u062d\u0633\u064a\u0646 \u0623\u062f\u0627\u0621 \u062a\u0637\u0628\u064a\u0642\u0627\u062a \u0627\u0644\u0648\u064a\u0628 \u0648\u062a\u062d\u0642\u064a\u0642 \u062a\u062c\u0631\u0628\u0629 \u0645\u0633\u062a\u062e\u062f\u0645 \u0623\u0641\u0636\u0644. Fetch API Fetch API \u0647\u064a<\/p>\n","protected":false},"author":1,"featured_media":8940,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[52],"tags":[],"class_list":{"0":"post-8939","1":"post","2":"type-post","3":"status-publish","4":"format-standard","5":"has-post-thumbnail","7":"category-52"},"_links":{"self":[{"href":"https:\/\/nanamedia.org\/ar\/wp-json\/wp\/v2\/posts\/8939","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/nanamedia.org\/ar\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/nanamedia.org\/ar\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/nanamedia.org\/ar\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/nanamedia.org\/ar\/wp-json\/wp\/v2\/comments?post=8939"}],"version-history":[{"count":1,"href":"https:\/\/nanamedia.org\/ar\/wp-json\/wp\/v2\/posts\/8939\/revisions"}],"predecessor-version":[{"id":8941,"href":"https:\/\/nanamedia.org\/ar\/wp-json\/wp\/v2\/posts\/8939\/revisions\/8941"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/nanamedia.org\/ar\/wp-json\/wp\/v2\/media\/8940"}],"wp:attachment":[{"href":"https:\/\/nanamedia.org\/ar\/wp-json\/wp\/v2\/media?parent=8939"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/nanamedia.org\/ar\/wp-json\/wp\/v2\/categories?post=8939"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/nanamedia.org\/ar\/wp-json\/wp\/v2\/tags?post=8939"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}