High Performance Mobile Web. Best Practices for



Optimize the performance of your mobile websites and webapps to the extreme. With this hands-on book, veteran mobile and web developer Maximiliano Firtman demonstrates which aspects of your site or app slow down the user…s experience, and what you can do to achieve lightning-fast performance. There…s much at stake: if you want to boost your app…s conversion rate, then tackling performance issues is the best way to start.Learn tools and techniques for working with responsive web design, images, the network layer, and many other ingredients-plus the metrics to check your progress. Ideal for web developers and web designers with HTML, CSS, JavaScript, and HTTP experience, this is your guide to superior mobile web performance.You…ll dive into:Emulators, simulators, and other tools for measuring performanceBasic web performance concepts, including metrics, charts, and goalsHow to get real data from mobile browsers on your real networksAPIs and specs for measuring, tracking and improving web performanceInsights and tricks for optimizing the first view experienceWays to optimize post-loading experiences and future visitsResponsive web design and its performance challengesTips for extreme performance to achieve best conversion ratesHow to work with web views inside native apps Spis treści:PrefaceWho Should Read This BookA Word on Mobile Web TodayNavigating This BookOnline ResourcesConventions Used in This BookSafari Books OnlineHow to Contact UsAcknowledgments1. The Mobile Web WorldForm FactorsMobile HardwareMobile NetworksDistributionBandwidthLatencyRadio stateMobile Operating SystemsEnginesRendering EnginesExecution EnginesWeb PlatformsWeb AppsiOS Home Screen Web AppsChrome Home Screen Web AppsProgressive Web AppsSummary of Web AppsWeb ViewsNative Web AppsIn-App BrowsersPseudo-BrowsersThe Web View on iOSThe Web View on AndroidThe Web View on WindowsSummary of Web ViewsWeb BrowsersStatsCloud Versus Direct BrowsersStock BrowsersiOS BrowsersAndroid BrowsersWindows BrowsersThe Mobile Web Is Not Just a Narrow Viewport2. Where to Measure PerformanceSimulators and EmulatorsAndroidAndroid BrowserGoogle ChromeSamsung BrowserAmazon Silk, LG, and other custom browsersSafari on iOSInternet ExplorerMicrosoft EdgeReal DevicesOpen Device LabCloud-Based ServicesSamsung Remote Test LabKeynote Mobile TestingPerfecto MobileAppThwackAWS Device FarmNetwork ConnectionDesktop SimulatorsOn-Device Connection SimulatorsSelecting Where to Measure Is Important3. Web Performance BasicsLoading Measurement BasicsThe Waterfall ChartResource timingBackground colorsAdvanced resource timingThe critical pathThe first rowMilestonesFilmstripThe HAR FormatVersionsExport toolsAnalysis toolsSpeed IndexWhat to MeasureCustom MetricsThe RAIL ApproachResponsiveness Measurement BasicsFrames per SecondProfiling ChartsCPU ProfilingMemory ProfilingMixed ProfilingYou Cant Improve Something If You Dont Measure It4. Measurement ToolsRemote InspectorsSafari on iOSTimelinesNetwork tabChrome for AndroidScreencastingRendering settingsThe Network tabThe Timeline tabThe Profiles tabThe Audits tabInternet Explorer and EdgeVorlon.jsProxiesSetting Up on AndroidSetting Up on iOSCharles Web Debugging ProxyFiddlerOn-Device ToolsOnline ToolsWebPagetestPageSpeed InsightsMonitoring ServicesThe Tools You Need5. Performance APIsMeasurement APIsNavigation TimingTimingsTiming.jsNavigation metadataHigh Resolution TimeResource TimingNetwork APIsNetwork Status EventsNetwork InformationOld specificationW3C first specW3C latest specBeaconHTTP Client HintsUI APIsPage VisibilityrequestAnimationFramerequestIdleCallbackUser TimingFuture APIsFrame TimingScript Timing APIPerformance TimelineEfficient Script YieldingUsing Specs and APIs in Your Favor6. Optimizing for the First VisitThe HTTP SideHTTP VersionTesting version supportConfiguring HTTP/1.1Adding support for HTTP/2CompressionBrotli compression algorithmSDCH compression algorithmFiles to compressEnabling compressionRedirectionsThe real exampleDoing too much harmHSTS: Opt-in for HTTPSApp (Spam) BannerPromoting your app smartlyiOS Smart App BannerWindows Store appsAndroid solutionsApp LinksReducing RequestsDomain ShardingCookieless DomainsFreeing Up Our ServerHTMLSemantic WebFlush the HTML EarlyDNS PrefetchingHTML CompressionCSSInternal Versus ExternalOnly One External FileLoading External CSSNonblocking CSSLink in body patternMinifyingWeb FontsSelecting web fontsWeb font CDNsLoading web fontsJavaScriptInternal Versus ExternalMinifyingLoading External JavaScriptdefer attributeasync attributedefault Versus async Versus deferScript loadersUsing well-known frameworksOnly One External FileLoad EventsImagesResponsive ImagesMedia queriessrcsetpictureJS-based solutionsServer-side libraries for resizing imagesImage resizing in the cloudInline ImagesSome examplesPerformance impactImage FilesNew optimized formatsGoodbye, Animated GIFHero ImagesCSS SpritingDont Forget the ServerOptimizing Using Best Practices7. Optimizing After First LoadThe Cache: Your New FriendCache PolicyExpiration HeadersExpires headerCache-ControlSetting up serversETag HeaderThe Vary SpecificationCustom Client CacheClient-SideServer-SidePrefetchingDeciding What to PrefetchUsing contextCollective data versus users historyWhen to Start a PrefetchHow to PrefetchBrowser prefetchingResource HintsPrefetching from the serverCustom prefetchingThe Offline ExperienceApplication CacheThe Manifest FileAccessing Online ResourcesFallbacksUpdating the PackageThe JavaScript APICache EventsCompatibility and LimitsDebugging the Application CacheService WorkersInstalling the Service WorkerCaching FilesServing FilesFetching and CachingThe Cache Storage InterfaceUpdating CacheUpdating a Service WorkerDebugging Service WorkersBackground SyncBackground Periodic SyncFuture Visits Are an Opportunity8. Optimizing Responsiveness and the PostLoading ExperienceImmediate FeedbackTouch DelayJavaScript TasksDefer codeDebouncing and throttlingGood-bye DOM, hello CanvasPassive event listenersWeb workersFrame RateScrolling ExperienceMomentum-based scrolling areasAvoid Large JavaScript CodeAvoid RepaintingCSS ContainmentNetwork CommunicationFetch APIServer-Sent EventsServer sideWebSocketsServer sideSocket.IOThe Post-Loading Experience Is Also Important9. Responsive Web DesignThe ProblemResponsive web design on cellular networksOne HTML for allLoading resourcesThe Real Problem: Responsive Design as a GoalResponsiveness Versus UsersAlternativesThe Solution: Responsive and FastConditional LoadingResponsive from Big to SmallResponsiveness by GroupMore Complex ScenariosiOS and Android Split ModesWindows 10 ContinuumResponsive as a StrategyDoes RWD Matter from a Users Point of View?10. Extreme Mobile Web PerformanceMobile Web AlternativesThe Lucky Numbers14 KBThe ATF PatternMobile ViewportCritical CSS Extraction ToolsLazy LoadingImagesExtreme Responsive ImagesNonblocking Image DecodingLow-Resolution ImagesJavaScript Only as DessertAvoid Big FrameworksAvoid Client-Side RenderingSD/HD PatternThe PRPL PatternThe (Near?) FutureWeb StreamsWebAssemblyAMPBenefitsControversyDiscovery of AMP PagesAMP-HTML TemplateRequirementsCustom ComponentsValidation and DebuggingFacebook Instant ArticlesThe Technical SideThe Distribution SideThe Extreme Side Will Reward You11. The Native Side of the WebWeb Views on iOSGoodbye UIWebViewRendering as an AppWeb Views on AndroidBasic SetupAmazon WebViewCrosswalkBigger APKsWhat Doesnt Work on Embedded ContentIn-App BrowsingCustom Tabs on AndroidWarming up the browserSamsung Custom TabsSafari View ControllerThe Same But Different12. Mobile Web Performance ChecklistBasic DataNetwork ChecklistBasic OptimizationsExtreme OptimizationsMeasuring ImprovementYouve Selected the Red PillIndex


co wlicza sie do lat pracy, nad zielonym, praca na statku norwegia, silniki toyoty, farba olejna biała, ile kosztuje prywatne przedszkole