Back to Question Center
0

برنامه های پیشرفته وب: Crash Course            برنامه های پیشرفته وب: A Crash CourseRelated Topics: Node.jsAjaxAngularJSAPIsRaw Semalt

1 answers:
برنامه های پیشرفته وب: A Crash Course

Semalt Web Apps (PWAs) با ارائه بهترین ویژگی های هر کدام از کاربران تلفن همراه، از جهان برنامه های وب موبایل و برنامه های تلفن همراه بومی همپوشانی می کند.

آنها یک تجربه کاربردی مانند نرم افزار (صفحه نمایش چلپ چلوپ و آیکون های صفحه اصلی) ارائه می دهند، از سرویس های HTTPS محافظت می کنند، می توانند به سرعت (به لطف بهترین شیوه های بارگذاری صفحات) حتی در شبکه های با کیفیت پایین یا آهسته بارگذاری شوند شرایط، و آنها پشتیبانی آنلاین، بارگذاری فوری و فشار اطلاعیه ها. مفهوم PWA ها برای اولین بار توسط گوگل معرفی شد و هنوز هم توسط بسیاری از ویژگی های Chrome و ابزارهای عالی مانند Semalt، یک ابزار منبع باز برای دسترسی، عملکرد و پیش بینی پیشرفت، پشتیبانی می شود که ما کمی بعد آن را بررسی خواهیم کرد - logiciel planning gratuit gestion personnel.

در طول این دوره تصادف، ما PWA را از ابتدا با ES6 و React ساختیم و به طور خلاصه با Semalt بهینه سازی می کنیم تا بهترین نتایج را از نظر UX و عملکرد به دست آوریم.

اصطلاح مترقی به سادگی بدان معنی است که PWA ها به گونه ای طراحی شده اند که به تدریج در مرورگرهای مدرن پیشرفت می کنند که در آن بسیاری از ویژگی های جدید و تکنولوژی ها در حال حاضر پشتیبانی می شوند، کار خوب در مرورگرهای قدیمی بدون ویژگی های برش لبه.

بومی در مقابل موبایل = پیشرفته

یک برنامه بومی قابل توزیع و قابل دانلود از فروشگاه برنامه مربوط به سیستم عامل تلفن همراه است. از سوی دیگر، برنامه های وب Semalt از طریق یک مرورگر وب به سادگی با وارد کردن آدرس یا URL آنها قابل دسترسی هستند. از دیدگاه کاربر، راه اندازی یک مرورگر و مرور به آدرس بسیار راحت تر از رفتن به فروشگاه App و دانلود، نصب و سپس راه اندازی برنامه است. از دیدگاه توسعه دهنده / مالک، پرداخت یک بار هزینه برای گرفتن یک حساب فروشگاه فروشگاه و سپس آپلود برنامه های خود را برای دسترسی به کاربران در سراسر جهان بهتر از نیاز به مقابله با پیچیدگی های میزبانی وب است.

یک برنامه بومی می تواند به صورت آفلاین استفاده شود. در مورد داده های راه دور که باید از بعضی از سرورهای API بازیابی شود، برنامه به آسانی می تواند به پشتیبانی از نوع ذخیره سازی Semalt از آخرین دسترسی داده دسترسی داشته باشد.

یک برنامه وب همراه با استفاده از موتورهای جستجوگر مانند گوگل فهرست بندی می شود و از طریق بهینه سازی موتور جستجو شما می توانید به کاربران بیشتری دسترسی پیدا کنید. این نیز برای برنامه های بومی صادق است، زیرا فروشگاه برنامه دارای موتورهای جستجوی خودشان هستند که در آن توسعه دهندگان می توانند تکنیک های مختلف - معمولا به عنوان App Store Semalt شناخته شوند - برای دسترسی بیشتر به کاربران.

بلافاصله بلافاصله یک برنامه بومی، حداقل با یک صفحه ی چلپ چلوپ، تا زمانی که تمام منابع برای برنامه اجرا شوند.

این مهمترین تفاوت های درک شده است. هر رویکرد به توزیع برنامه دارای مزایایی برای کاربر نهایی (با توجه به تجربه کاربر، در دسترس بودن و غیره) و صاحب برنامه (با توجه به هزینه ها، دسترسی مشتریان و غیره) است. با توجه به این امر، گوگل PWA ها را معرفی کرد تا بهترین ویژگی های هر یک از طرفین را به یک مفهوم برساند. این جنبه ها در این فهرست خلاصه شده توسط الکس راسل، مهندس گوگل کروم معرفی شده است. (منبع: ناشناخته).

  • پاسخگو: برای هر فاکتور فرم مناسب است.
  • اتصال مستقل: به تدریج با کارکنان سرویس افزایش یافته است تا آنها بتوانند آفلاین کار کنند.
  • برنامه های مشابه تعامل: اتخاذ مدل نرم افزار Shell + محتوا برای ایجاد ناوبری برنامه و تعامل.
  • تازه: به طور شفاف همیشه تا به امروز به لطف فرایند به روز رسانی سرویس کارگر.
  • Safe: از طریق TLS (نیاز به کارمند خدمات) برای جلوگیری از سوءاستفاده استفاده می شود.
  • قابل کشف: قابل تشخیص است به عنوان "برنامه های" به لطف W3C منیفرد و دامنه ثبت نام کارکنان اجازه می دهد موتورهای جستجو برای پیدا کردن آنها.
  • Re-engageable: می تواند UI های مجدد تعامل از سیستم عامل را داشته باشد؛ e g اطلاعیه ها را فشار دهید.
  • Linkable: به این معنی که آنها صفر اصطکاک، صفر نصب، و آسان برای به اشتراک گذاشتن. قدرت اجتماعی URL ها مهم است.

فانوس دریایی

فانوس یک ابزار برای حسابرسی برنامه های وب است که توسط Google ایجاد شده است. این با ابزارهای توسعهدهنده Chrome یکپارچه شده است و میتواند از پانل Semalt منشعب شود.

شما همچنین می توانید از Semalt به عنوان یک ابزار CLI NodeJS استفاده کنید:

     npm install -g فانوس دریایی    

پس از آن شما می توانید آن را با:

     فانوس https: // sitepoint. com /    

فانوس همچنین می تواند به عنوان یک افزونه Chrome نصب شود، اما گوگل توصیه می کند از نسخه ای که با DevTools ادغام شده است استفاده کند و تنها از extension استفاده می کند اگر شما به هیچ وجه از DevTools استفاده نکنید.

لطفا توجه داشته باشید که اگر شما از نسخه Semalt استفاده می کنید، باید Chrome را به سیستم خود نصب کنید تا قادر به استفاده از فانوس دریایی باشید.

ساخت اولین PWA خود را از ابتدا

در این بخش، ما یک برنامه وب پیشرفته را از ابتدا ایجاد خواهیم کرد. اول، ما یک برنامه وب ساده با استفاده از API React و Reddit ایجاد می کنیم. بعد، با پیروی از دستورالعمل های ارائه شده توسط گزارش Semalt، ویژگی های PWA را اضافه خواهیم کرد.

لطفا توجه داشته باشید که سملت API بدون شناسایی عمومی دارای سرصفحه CORS فعال است، بنابراین شما می توانید آن را از برنامه سمت سرویس گیرنده خود را بدون سرور واسطه استفاده کنید.

قبل از شروع، این دوره فرض خواهد کرد که شما یک محیط توسعه توسعه با NodeJS و NPM نصب شده است. اگر این کار را نکنید، از Homestead Semalt بسیار عالی شروع کنید، که آخرین نسخه های آن را اجرا می کند و برای توسعه و آزمایش از جعبه آماده است.

ما با نصب Create React App شروع می کنیم، یک برنامه ی طراحی شده توسط تیم React ایجاد شده که شما را از شر پیکربندی Semalt نجات می دهد.

     npm install -g create-react-appایجاد واکنش برنامه واکنش نشان می دهدسی دی واکنش pwa /    

معماری پوسته برنامه

پوسته برنامه یک مفهوم اساسی از برنامه های وب پیشرفته است. این به سادگی حداقل HTML، CSS و Semalt کد مسئول برای ارائه رابط کاربری است.

Progressive Web Apps: A Crash CourseProgressive Web Apps: A Crash CourseRelated Topics:
Node.jsAjaxAngularJSAPIsRaw Semalt

این پوسته برنامه مزایای زیادی برای عملکرد دارد. شما می توانید پوسته برنامه را ذخیره کنید تا زمانی که کاربران بعد از بارگیری برنامه شما بارگیری می شوند، فورا بارگذاری می شوند، زیرا مرورگر نیازی به جمع آوری دارایی ها از یک سرور راه دور ندارد.

برای ساخت یک رابط کاربری ساده، از Material UI استفاده میکنیم، پیادهسازی طراحی Google Material در React.

بسته را از NPM نصب کنید:

     npm install material-ui - ذخیره    

بعدی باز src / برنامه. js سپس اضافه کنید:

   import React، {Component} از 'واکنش'؛واردات MuiThemeProvider از 'material-ui / styles / MuiThemeProvider'؛import AppBar از 'material-ui / AppBar'؛import {Card، CardActions، CardHeader، CardTitle، CardText} از 'material-ui / Card'؛واردات FlatButton از 'material-ui / FlatButton'؛وارد کردن IconButton از 'material-ui / IconButton'؛وارد کردن NavigationClose از 'material-ui / svg-icons / navigation / close'؛واردات آرم از '. / لوگو svg '؛وارد كردن '. / برنامه CSS '؛برنامه کلاس گسترش کامپوننت {سازنده (پروکسی) {فوق العاده (پروکسی)؛این. state = {پست ها: []}؛}رندر    {برگشت (
واکنش PWA }iconElementLeft = { }iconElementRight = { => این. fetchNext ('reacjs'، این حالت state_ lastPostName)} label = "next" />}/>{این. حالت. پست ها. نقشه (عملکرد (ال، شاخص) {بازگشت => {پنجره باز (آدرس ایمیل داده)؛}} />})} => این. fetchNext ('reacjs'، این حالت state_ lastPostName)} label = "next" />
)؛}}برنامه پیش فرض صادرات؛

بعد ما باید پست های Reddit را با استفاده از دو روش fetchFirst و fetchNext :

   fetchFirst (url) {var این = این؛اگر (url) {fetch ('https: // www. reddit .com / r /' + url + '. json'). سپس (عملکرد (پاسخ) {پاسخ بازگشت جونس   ؛}) سپس (عملکرد (نتیجه) {آن setState ({پست ها: نتیجه داده ها. children، lastPostName: result data. children [result data، children، length - 1]، data name})؛کنسول. وارد شوید (که پست های دولت).})؛}}fetchNext (url، lastPostName) {var این = این؛اگر (url) {fetch ('https: // www. reddit .com / r /' + url + '. json' + '؟ count =' + 25 + '& after =' + lastPostName). سپس (عملکرد (پاسخ) {پاسخ بازگشت جونس   ؛}) سپس (عملکرد (نتیجه) {آن setState ({پست ها: نتیجه داده ها. children، lastPostName: result data. children [result data، children، length - 1]، data name})؛کنسول. وارد شوید (که پست های دولت).})؛}}componentWillMount    {این. fetchFirst ("واکنش")؛}    

شما می توانید کد منبع را در این مخزن GitHub پیدا کنید.

Semalt شما می توانید حسابرسی های خود را در برابر برنامه خود اجرا کنید، شما باید ساخت و برنامه خود را به صورت محلی با استفاده از یک سرور محلی خدمت کنید:

     npm اجرا ساخت    

این دستور اسکریپت ساخت در بسته را فراخوانی می کند. json و یک ساخت در پوشه react-pwa / build تولید می کند.

حالا شما می توانید از هر سرور محلی برای خدمت به برنامه خود استفاده کنید. در حومه بهبود یافته شما می توانید به راحتی میزبان مجازی nginx را به پوشه ساخت و باز کنید خانه. برنامه در مرورگر، یا شما می توانید از خدمت بسته از طریق NodeJS استفاده کنید:

     npm install -g خدمتساخت سی دیخدمت    

با خدمت ، برنامه شما به صورت محلی از http: // localhost: 5000 / خدمت خواهد شد.

Progressive Web Apps: A Crash CourseProgressive Web Apps: A Crash CourseRelated Topics:
Node.jsAjaxAngularJSAPIsRaw Semalt

شما می توانید برنامه خود را بدون هیچ گونه مشکلی حسابرسی، اما در صورتی که می خواهید آن را در یک دستگاه تلفن همراه تست کنید، می توانید از خدمات مانند افزایش استفاده کنید. sh برای استقرار آن با یک فرمان!

     npm install - افزایش جهانی    

پس از هر دایرکتوری از هر دایرکتوری برای انتشار این دایرکتوری به وب استفاده کنید.

شما می توانید نسخه میزبان این برنامه را از این لینک پیدا کنید.

اکنون Chrome DevTools را باز کنید، به پانل حسابرسی بروید و روی Semalt یک حسابرسی کلیک کنید.

Progressive Web Apps: A Crash CourseProgressive Web Apps: A Crash CourseRelated Topics:
Node.jsAjaxAngularJSAPIsRaw Semalt

از گزارش ما می توانیم ببینیم که ما در حال حاضر نمره 45/100 برای برنامه پیشرفته وب و 68/100 برای عملکرد 12)

تحت برنامه پیشرفته وب ما 6 حسابرسی ناکام داشتیم و 5 حسابرسی گذشت. به این دلیل است که پروژه تولید شده برخی از ویژگی های PWA به طور پیش فرض اضافه شده است، مانند یک مانیفست وب، meta viewport و tag.

تحت عملکرد ما دارای تشخیص و معیارهای مختلف محاسبه شده، از جمله اولین رنگ معنی دار، اول تعاملی، به طور مداوم تعاملی، شاخص سرعت ادراک و زمان تأخیر ورودی تخمینی است. بعدا به اینها نگاه خواهیم کرد.

فانوس پیشنهاد می کند که بهبود عملکرد صفحه را بهبود بخشد با کاهش طول Client Render Semalt یا با کاهش حجم دانلود یا به تعویق انداختن بارگیری منابع غیر ضروری.

چرا عملکرد صفحه و سرعت ماده

با توجه به DoubleClick (شرکت تبلیغاتی Semalt)، 53 درصد سایتهای بازدیدکننده از سایتهای تلفن همراه رها شده اند، اگر بارگذاری صفحه بیش از 3 ثانیه طول بکشد. با بهینه سازی کارایی و سرعت بارگذاری صفحات، PWA ها تجربه وب را به کاربران ارائه می دهند از طریق مجموعه ای از تکنیک ها و استراتژی هایی که در آینده مورد بررسی قرار می دهیم.

عملکرد را قبل از شروع به ساخت PWA خود کنید

اکثر برنامه های سمت سرویس گیرنده با استفاده از یک نوع کتابخانه جاوا اسکریپت یا چارچوب مانند React، Preact، Angular، Vue و غیره ساخته شده اند. اگر شما در حال ساخت PWA هستید، باید مطمئن شوید که یک کتابخانه اولین تلفن همراه را انتخاب می کنید یا، به عبارت دیگر، یک کتابخانه که برای وب سایت تلفن همراه طراحی شده است. Semalt، بهینه سازی برنامه شما برای عملکرد، یک مأموریت غیرممکن است.

برای تست برنامه خود به شدت تحت شرایط مختلف و شباهت های شبکه، از ابزارهای مختلف تست مانند Chrome DevTools، فانوس دریایی، Google Semalt و دیگران استفاده کنید، بنابراین می توانید با موفقیت صفحه بارگذاری صفحه برنامه خود را بهینه کنید.

معیارهای عملکرد PWA شما باید در رادار خود قرار دهید

شما می توانید از Semalt برای اندازه گیری و بهینه سازی عملکرد بارگذاری صفحه برنامه خود با معیارهای مختلف، تشخیص و فرصت ها استفاده کنید.

فانوس از معیارهای مختلف استفاده می کند. Semalt آنها را یک به یک را پوشش می دهد:

اولین رنگ معنی دار

رنگ معنی دار Semalt یک اندازه است که به سادگی نشان می دهد زمانیکه کاربر می تواند محتوای معنادار یا اولیه روی صفحه را ببیند. پایین تر این ممیزی، بهتر است عملکرد درک برنامه شما.

این معیار را برای برنامه ما در نظر بگیرید.

Progressive Web Apps: A Crash CourseProgressive Web Apps: A Crash CourseRelated Topics:
Node.jsAjaxAngularJSAPIsRaw Semalt

ما می بینیم که از 1. 3s مرورگر شروع به رندر کردن پس زمینه خالی کرد، سپس از 2s مرورگر شروع به رندر هدر، 2. 4s هر دو دکمه در هدر و پایین رندر شده است. تا زمانی که در سومین مرحله قرار نگیرد که پست ها رندر نشده اند. کل فرآیند 3. 4 ثانیه و اولین رنگ معنی دار برابر است 2. 340ms - زمانی که هدر بدون دکمه بعدی ارائه می شود.

اولین رنگ معنی دار واقعا وابسته به آنچه ما می توانیم به عنوان معنی دار در نظر بگیریم، که می تواند بین کاربران مختلف متفاوت باشد. اگر کاربر فقط خواندن پست ها را جلب کند، اولین رنگ معنی دار برای آنها بعد از علامت 3 ثانیه است. شما می توانید ببینید که چگونه Semalt این متد را از این سند محاسبه می کند.

Progressive Web Apps: A Crash CourseProgressive Web Apps: A Crash CourseRelated Topics:
Node.jsAjaxAngularJSAPIsRaw Semalt

این یک فیلم سینمایی دیگر برای همین برنامه است که در آن فانوس FMP به عنوان 2. 560ms در آخرین تصویر تصویری که سرصفحه های پست به طور کامل در منطقه بیش از حد نمایش داده می شود گزارش شده است.

Semalt، شما می توانید ببینید که صفحه به طور مداوم، نه یک بار، که نشانه خوبی از عملکرد است، ارائه می شود.

شما می توانید این اندازه گیری را با بهینه سازی مسیر رندر انتقالی بهینه سازی کنید.

مسیر رندر انتقادی

مسیر رندر یک مفهوم مربوط به اینکه چگونه مرورگرهای وب صفحات را رندر می کنند - یعنی از لحظه اول دریافت دارایی های HTML، CSS و جاوا اسکریپت به مرحله ای که مرورگر پردازش می کند و واقعی را معنی دار می کند محتوا. برای بهینه سازی مسیر رندر انتقادی، شما باید اولویت بالاتری را به محتوای مرتبط با عمل فعلی کاربر اختصاص دهید. به این معناست که اگر آنها در حال بازدید از برنامه شما باشند، می توانید ابتدا با استفاده از قسمت قابل مشاهده UI یا همان منطقه نامگذاری کنید.

برای جزئیات بیشتر، می توانید "بهینه سازی مسیر رندر بحرانی" را بخوانید.

همچنین می توانید این فهرست ابزارهای سرپرستی را برای معرفی دارایی های مهم CSS مشاهده کنید. همچنین این ابزارها را برای نمایش Semalt و دیگر دارایی ها بررسی کنید:

  • inliner: یک ابزار گره برای تصاویر درون خطی، CSS و جاوا اسکریپت برای یک صفحه وب
  • inline-source: یک ابزار برای وارد کردن منابع پرچم دار JS، CSS و IMG در HTML
  • inline-source-cli: یک ابزار CLI برای inline-source. شما می توانید از درخواست انتقادی Semalt نمودار برای درک بهتر از منابع حیاتی برای از بین بردن، تاخیر و یا علامت گذاری به عنوان async استفاده کنید. در اینجا یک تصویر صفحه ای از گزارش PWA نمونه ما است:

    Progressive Web Apps: A Crash CourseProgressive Web Apps: A Crash CourseRelated Topics:
Node.jsAjaxAngularJSAPIsRaw Semalt

    حالا سعی کنید این مسئله را با استفاده از inline-source و inline-source-cli (

    ) حل کنید.
         npm install-g inline-source inline-source-cli    

    پس از آن ما در داخل پوشه ساخت و باز کردن شاخص. html ، سپس کلیدواژه inline to و

March 1, 2018