mobileFX WebKitX CEF3 ActiveX 4.x
WebKitXCEF3Lib ActiveX Control / WebKitXCEF3 Object / GetPerformanceCounters Method

When set to true the result is converted to XML. Default format is JSON.

In This Topic
    GetPerformanceCounters Method
    In This Topic
    Description

    Obtains the Navigation Performance Counters of the current page. The method is used during QA to examine loading times of a page's resources.

    Syntax
    Visual Basic
    Public Function GetPerformanceCounters( _
       ByVal XML As Boolean _
    ) As String
    Parameters
    XML

    When set to true the result is converted to XML. Default format is JSON.

    Return Type

    Returns a JSON or XML string with the Navigation Performance Counters of the current page.

    Remarks

    WebKitX wraps Resource Timing API and generates a JSON or XML report of the loading times of a page.

    Loading times recorded by WebKitX are:

    Total page load time (page_load_time): it is the total perceived amount of time it took CEF to load the page. This subtracts the time at which navigation began (navigationStart) from the time at which the load event handler returns (loadEventEnd).

    Request-response time (page_request_response_time): it is the time elapsed between the beginning of a request and the completion of getting the response. This subtracts the time at which the request was initiated (requestStart) from the time at which the response was finished being received (responseEnd).

    Page render time (page_render_time): it is the amount of time it took to render the page. This is obtained by starting with the time at which loading of the DOM and its dependencies is complete (domComplete) and subtracting from it the time at which parsing of the DOM began (domLoading).

    Navigation Records: a list with the load duration of each frame. This is the same as page_load_time but recorded for each frame.

    Resource Records: a list with the load duration of each resource. The Resource Timing API provides a way to retrieve and analyze detailed network timing data regarding the loading of an application's resource(s). An application can use the timing metrics to determine, for example, the length of time it takes to fetch a specific resource such as an XMLHttpRequest, <SVG>, image, script, etc.). The interface's properties create a resource loading timeline with high-resolution timestamps for network events such as redirect start and end times, fetch start, DNS lookup start and end times, response start and end times, etc. The interface also includes other properties that provide data about the size of the fetched resource as well as the type of resource that initiated the fetch. An application can get timestamps for the various phases of resource loading such as redirection, DNS lookup, and TCP connection setup. Those phases and their property names are illustrated in figure below:

    WebKitX uses the resource timing properties to calculate the amount of time the following phases take: redirection, DNS lookup, TCP handshake, and response, where duration = responseEnd - startTime. This timing data provides a detailed profile of the resource loading phases and this data can be used to help identify performance bottlenecks.

    For every resource the startTime is a relative time offset in milliseconds since time zero and represents the when the resource started to download since the page loading has started. The property duration is the time in milliseconds it took to fully download the resource and does not contain rendering or post-download times.

    The size of an application's resources can affect an application's performance so getting accurate data on resource size can be important (especially for non-hosted resources). WebKitX returns the transferSize property which is the size (in octets) of the fetched resource including the response header fields plus the response payload body.

    For more information please familiarize with the following articles:

    https://developer.mozilla.org/en-US/docs/Web/API/Resource_Timing_API/Using_the_Resource_Timing_API
    https://developer.mozilla.org/en-US/docs/Web/API/Navigation_timing_API
    https://developer.mozilla.org/en-US/docs/Web/API/PerformanceNavigationTiming

    Why times are different from Chrome Dev Tools?

    Please read: https://stackoverflow.com/questions/43710347/chrome-difference-between-event-time-in-devtools-timeline-and-performance-timi

    Navigation Timing API starts record on navigationStart event. DevTools Performance Timeline starts recording "some time" before navigationStart event, that's why performance.getEntriesByType("navigation")[0].loadEventEnd gives smaller value than loadEventEnd in timeline. If you calculate timeline loadEventEnd - navigationStart you will get the same value as in Navigation Timing API.

    How cache affects performance counters?

    Caching seriously affects the loading time of resources. If the page is loading for the first time then all its resources are downloaded one by one. However, next time you load the same page, depending on cache strategies implemented on your server, the payload of some resources might get loaded from the cache, thus your page will load faster. WebKitX offers several methods and properties for controlling cache usage. Please see Reload and cache_path.

    Why OnPageComplete event takes more time to fire than performance counters?

    OnPageComplete is implemented with a 3-seconds loop that polls all frames of the page for document.readyState = 'complete'. If all frames respond that are complete then OnPageComplete fires; otherwise it re-tries in 3-seconds. OnPageComplete event was added to help developers get an event when all frames of the page are fully loaded. However, with modern asynchronous and late-loading HTML5 frameworks such as Angular, VUE, etc. this event might not provide any reasonable use.

    Why GetPerformanceCounters returns empty JSON?

    Performance data are collected by a separate CEF thread and we can pull them when CEF deems they are “ready”. Unfortunately there was no callback available in CEF to know “when” they are ready, so if the method returns no data then you need to poll. Please add a Timer in your Form; the idea is that if the first call to get performance data fails, the timer can retry in 250 milliseconds again.

    Does double buffering of Windows Forms affect performance counters?

    Double buffering does not affect performance counters but surely it can confuse your observations. When double buffering is enabled (which is mandatory for WebKitX) the Windows Form flushes the rendered HTML5 page on the Form's surface when it believes the page is stable, that is when all paint requests are concluded. This flushing could be a few milliseconds after CEF has finished rendering the page and to the trained eye it could seem as if WebKitX delays rendering. Unfortunately this is a performance cost of using CEF in a COM wrapper for Windows Forms and the behavior is default and cannot be further optimized.

    Double buffering uses a memory buffer to address the flicker problems associated with multiple paint operations. When double buffering is enabled, all paint operations are first rendered to a memory buffer instead of the drawing surface on the screen. After all paint operations are completed, the memory buffer is copied directly to the drawing surface associated with it. Because only one graphics operation is performed on the screen, the image flickering associated with complex painting operations is eliminated. For most applications, the default double buffering provided will provide the best results. Standard Windows Forms controls are double buffered by default. You can enable default double buffering in your forms and authored controls by setting the AutoRedraw property to true (or you can call the SetStyle Win32 API method to set the OptimizedDoubleBuffer flag to true). Both methods will enable default double buffering for your form or control and provide flicker-free graphics rendering. Calling the SetStyle method is recommended only for custom controls for which you have written all the rendering code. Please make sure you set the AutoRedraw property of your Form to true for automatic HDC refresh. If you want immediate redraw of the Form, set AutoRedraw to false and in OnPageComplete call Form1.Refresh method to immediately repaint.

    Example
    Private Sub WebKitX1_OnBrowserReady()
            
        On Error Resume Next
        
        ' Clear performance counters
        WebKitX1.ClearPerformanceCounters
        
        ' Navigate
        WebKitX1.Open "https://www.mobilefx.com"
        
        If Err.Number <> 0 Then
            MsgBox Err.Description, vbCritical
        End If
        
        Err.Clear
        
    End Sub
    
    Private Sub WebKitX1_OnPageComplete(ByVal URL As String)
        
        ' Get Navigation Performance Counters (JSON or XML)
        CodeMax1.Text = WebKitX1.GetPerformanceCounters(False)
    
    End Sub
    function clear_load_times()
    {
        performance.clearResourceTimings();
        performance.setResourceTimingBufferSize(1000);
    }
    
    function calculate_load_times(xml)
    {        
        var resources = performance.getEntriesByType("resource");
        if (resources === undefined || resources.length <= 0)
            return "{}";
    
        var resource = [];
        for (var i = 0; i < resources.length; i++)
        {
            var P = resources[i];
            var item = {
                name: P.name,
                type: P.initiatorType,                
                startTime: (P.startTime > 0) ? Round(P.startTime) : 0,
                duration: (P.startTime > 0) ? Round(P.responseEnd - P.startTime) : 0,
                transferSize: P.transferSize                
            };
            resource.push(item);
        }
    
        var navigation = [];
        var perfEntries = performance.getEntriesByType("navigation");
        for (var i = 0; i < perfEntries.length; i++)
        {
            var p = perfEntries[i];
            var item = {
                name: p.name,                
                duration: p.duration
            }
            navigation.push(item);
        }
    
        const perfData = window.performance.timing; 
    
        var result = {            
            page_load_time: perfData.loadEventEnd - perfData.navigationStart,
            page_request_response_time: perfData.responseEnd - perfData.requestStart,
            page_render_time: perfData.domComplete - perfData.domLoading,
            navigation: navigation,
            resources: resource,
        };
    
        result = JSON.stringify(result, null, 2);
    
        if (xml)
            result = CEFX.JSONtoXML(result, "PERF");
    
        return result;
    }
    {
      "page_load_time": 1682,
      "page_request_response_time": 21,
      "page_render_time": 1585,
      "navigation": [
        {
          "name": "https://www.mobilefx.com/",
          "duration": 1682.0000000006985
        }
      ],
      "resources": [
        {
          "name": "https://www.mobilefx.com/assets/mobirise/css/mbr-additional.css",
          "type": "link",
          "startTime": 96.4,
          "duration": 52.3,
          "transferSize": 47269
        },
        {
          "name": "https://www.mobilefx.com/assets/font-awesome/css/font-awesome.css",
          "type": "link",
          "startTime": 98,
          "duration": 61.8,
          "transferSize": 9185
        },
        {
          "name": "https://www.mobilefx.com/assets/icon54/style.css",
          "type": "link",
          "startTime": 98,
          "duration": 70.6,
          "transferSize": 20887
        },
        {
          "name": "https://www.mobilefx.com/assets/web/assets/mobirise-icons/mobirise-icons.css",
          "type": "link",
          "startTime": 98.2,
          "duration": 39.7,
          "transferSize": 2231
        },
        {
          "name": "https://www.mobilefx.com/assets/icons-mind/style.css",
          "type": "link",
          "startTime": 98.2,
          "duration": 62.9,
          "transferSize": 19059
        },
        {
          "name": "https://www.mobilefx.com/assets/bootstrap/css/bootstrap.min.css",
          "type": "link",
          "startTime": 98.3,
          "duration": 62.8,
          "transferSize": 14633
        },
        {
          "name": "https://www.mobilefx.com/assets/bootstrap/css/bootstrap-grid.min.css",
          "type": "link",
          "startTime": 98.4,
          "duration": 51.2,
          "transferSize": 2994
        },
        {
          "name": "https://www.mobilefx.com/assets/bootstrap/css/bootstrap-reboot.min.css",
          "type": "link",
          "startTime": 98.5,
          "duration": 58,
          "transferSize": 1262
        },
        {
          "name": "https://www.mobilefx.com/assets/dropdown/css/style.css",
          "type": "link",
          "startTime": 98.5,
          "duration": 60.6,
          "transferSize": 2510
        },
        {
          "name": "https://www.mobilefx.com/assets/web/assets/gdpr-plugin/gdpr-styles.css",
          "type": "link",
          "startTime": 98.7,
          "duration": 68.4,
          "transferSize": 706
        },
        {
          "name": "https://www.mobilefx.com/assets/animatecss/animate.min.css",
          "type": "link",
          "startTime": 98.7,
          "duration": 71.4,
          "transferSize": 6471
        },
        {
          "name": "https://www.mobilefx.com/assets/tether/tether.min.css",
          "type": "link",
          "startTime": 98.8,
          "duration": 68.9,
          "transferSize": 552
        },
        {
          "name": "https://www.mobilefx.com/assets/socicon/css/styles.css",
          "type": "link",
          "startTime": 98.9,
          "duration": 71.7,
          "transferSize": 2512
        },
        {
          "name": "https://www.mobilefx.com/assets/theme/css/style.css",
          "type": "link",
          "startTime": 98.9,
          "duration": 73.5,
          "transferSize": 6193
        },
        {
          "name": "https://www.mobilefx.com/assets/gallery/style.css",
          "type": "link",
          "startTime": 99,
          "duration": 77.8,
          "transferSize": 2892
        },
        {
          "name": "https://www.mobilefx.com/assets/formoid-css/recaptcha.css",
          "type": "link",
          "startTime": 99.1,
          "duration": 76.4,
          "transferSize": 498
        },
        {
          "name": "https://www.googletagmanager.com/gtag/js?id=UA-112438998-4",
          "type": "script",
          "startTime": 99.2,
          "duration": 159.2,
          "transferSize": 0
        },
        {
          "name": "https://www.mobilefx.com/assets/images/logo-mobilefx.png",
          "type": "img",
          "startTime": 99.3,
          "duration": 564.4,
          "transferSize": 25174
        },
        {
          "name": "https://www.mobilefx.com/assets/images/background-mobilefx-02.jpg",
          "type": "img",
          "startTime": 99.4,
          "duration": 988.2,
          "transferSize": 368382
        },
        {
          "name": "https://www.mobilefx.com/assets/images/services-banner-coding.jpg",
          "type": "img",
          "startTime": 99.4,
          "duration": 1001.1,
          "transferSize": 309339
        },
        {
          "name": "https://www.mobilefx.com/assets/images/background-mobilefx-03.jpg",
          "type": "img",
          "startTime": 99.4,
          "duration": 1018.4,
          "transferSize": 518506
        },
        {
          "name": "https://www.mobilefx.com/assets/images/background-mobilefx-01.jpg",
          "type": "img",
          "startTime": 99.4,
          "duration": 1128.4,
          "transferSize": 620728
        },
        {
          "name": "https://www.mobilefx.com/assets/images/services-banner-digitalstratery.jpg",
          "type": "img",
          "startTime": 99.4,
          "duration": 1215.9,
          "transferSize": 316588
        },
        {
          "name": "https://www.mobilefx.com/assets/images/services-banner-mobileagency.jpg",
          "type": "img",
          "startTime": 99.4,
          "duration": 1345.2,
          "transferSize": 341016
        },
        {
          "name": "https://www.mobilefx.com/assets/images/services-banner-digitalsignage.jpg",
          "type": "img",
          "startTime": 99.4,
          "duration": 1430.4,
          "transferSize": 384693
        },
        {
          "name": "https://www.mobilefx.com/assets/images/services-banner-gamesstudio.jpg",
          "type": "img",
          "startTime": 99.5,
          "duration": 1361.5,
          "transferSize": 233103
        },
        {
          "name": "https://www.mobilefx.com/assets/images/mobilefx-coconut2d-logo.png",
          "type": "img",
          "startTime": 99.5,
          "duration": 1409.7,
          "transferSize": 145749
        },
        {
          "name": "https://www.mobilefx.com/assets/images/v8-logo.png",
          "type": "img",
          "startTime": 99.5,
          "duration": 1428.2,
          "transferSize": 99987
        },
        {
          "name": "https://www.mobilefx.com/assets/images/logo-gi-cluster.png",
          "type": "img",
          "startTime": 99.5,
          "duration": 1431.4,
          "transferSize": 8853
        },
        {
          "name": "https://www.mobilefx.com/assets/images/logo.png",
          "type": "img",
          "startTime": 99.5,
          "duration": 1435.6,
          "transferSize": 148685
        },
        {
          "name": "https://www.mobilefx.com/assets/images/mobilefx-team-lina.jpg",
          "type": "img",
          "startTime": 99.5,
          "duration": 1476.4,
          "transferSize": 97188
        },
        {
          "name": "https://www.mobilefx.com/assets/images/mobilefx-team-elias.jpg",
          "type": "img",
          "startTime": 99.6,
          "duration": 1452.9,
          "transferSize": 53390
        },
        {
          "name": "https://www.mobilefx.com/assets/images/mobilefx-team-irida.jpg",
          "type": "img",
          "startTime": 99.6,
          "duration": 1481.3,
          "transferSize": 91362
        },
        {
          "name": "https://www.mobilefx.com/assets/images/logo-ge.png",
          "type": "img",
          "startTime": 99.7,
          "duration": 1472.8,
          "transferSize": 19744
        },
        {
          "name": "https://www.mobilefx.com/assets/images/mobilefx-team-christos.jpg",
          "type": "img",
          "startTime": 99.7,
          "duration": 1486.6,
          "transferSize": 102131
        },
        {
          "name": "https://www.mobilefx.com/assets/images/logo-citrix.png",
          "type": "img",
          "startTime": 99.7,
          "duration": 1503.8,
          "transferSize": 6841
        },
        {
          "name": "https://www.mobilefx.com/assets/images/logo-vodafone.png",
          "type": "img",
          "startTime": 99.8,
          "duration": 1490.1,
          "transferSize": 13233
        },
        {
          "name": "https://www.mobilefx.com/assets/images/logo-nickelodeon.png",
          "type": "img",
          "startTime": 99.8,
          "duration": 1491,
          "transferSize": 12568
        },
        {
          "name": "https://www.mobilefx.com/assets/images/logo-intralot.png",
          "type": "img",
          "startTime": 99.8,
          "duration": 1498.8,
          "transferSize": 16669
        },
        {
          "name": "https://www.mobilefx.com/assets/images/logo-public.png",
          "type": "img",
          "startTime": 99.8,
          "duration": 1499.7,
          "transferSize": 3129
        },
        {
          "name": "https://www.mobilefx.com/assets/images/logo-piraeusbank.png",
          "type": "img",
          "startTime": 99.8,
          "duration": 1502.8,
          "transferSize": 21292
        },
        {
          "name": "https://www.mobilefx.com/assets/images/logo-ant1.png",
          "type": "img",
          "startTime": 99.8,
          "duration": 1509.1,
          "transferSize": 3435
        },
        {
          "name": "https://www.mobilefx.com/assets/images/logo-trainose.png",
          "type": "img",
          "startTime": 99.8,
          "duration": 1513.5,
          "transferSize": 7974
        },
        {
          "name": "https://www.mobilefx.com/assets/images/logo-singular.png",
          "type": "img",
          "startTime": 99.9,
          "duration": 1514.2,
          "transferSize": 9213
        },
        {
          "name": "https://www.mobilefx.com/assets/images/logo-oasa.png",
          "type": "img",
          "startTime": 99.9,
          "duration": 1514.8,
          "transferSize": 12895
        },
        {
          "name": "https://www.mobilefx.com/assets/images/logo-spacehellas.png",
          "type": "img",
          "startTime": 99.9,
          "duration": 1519.2,
          "transferSize": 12075
        },
        {
          "name": "https://www.mobilefx.com/assets/images/logo-bluepod.png",
          "type": "img",
          "startTime": 99.9,
          "duration": 1522.2,
          "transferSize": 16898
        },
        {
          "name": "https://www.mobilefx.com/assets/images/logo-gameway.png",
          "type": "img",
          "startTime": 99.9,
          "duration": 1531,
          "transferSize": 8903
        },
        {
          "name": "https://www.mobilefx.com/assets/images/logo-i2.png",
          "type": "img",
          "startTime": 99.9,
          "duration": 1535.9,
          "transferSize": 37771
        },
        {
          "name": "https://www.mobilefx.com/assets/images/logo-mtv.png",
          "type": "img",
          "startTime": 100,
          "duration": 1526.6,
          "transferSize": 21779
        },
        {
          "name": "https://www.mobilefx.com/assets/images/logo-ogilvyone.png",
          "type": "img",
          "startTime": 100,
          "duration": 1529.7,
          "transferSize": 11672
        },
        {
          "name": "https://www.mobilefx.com/assets/images/logo-mobilemedia.png",
          "type": "img",
          "startTime": 100,
          "duration": 1531.7,
          "transferSize": 4762
        },
        {
          "name": "https://www.mobilefx.com/assets/images/logo-evin.png",
          "type": "img",
          "startTime": 100,
          "duration": 1537.3,
          "transferSize": 11551
        },
        {
          "name": "https://www.mobilefx.com/assets/images/logo-fluid.png",
          "type": "img",
          "startTime": 100,
          "duration": 1540.1,
          "transferSize": 13353
        },
        {
          "name": "https://www.mobilefx.com/assets/images/logo-blublu.png",
          "type": "img",
          "startTime": 100.1,
          "duration": 1541,
          "transferSize": 8077
        },
        {
          "name": "https://www.mobilefx.com/assets/web/assets/jquery/jquery.min.js",
          "type": "script",
          "startTime": 100.2,
          "duration": 97,
          "transferSize": 43168
        },
        {
          "name": "https://www.mobilefx.com/assets/images/favicon.ico",
          "type": "img",
          "startTime": 100.2,
          "duration": 1577.3,
          "transferSize": 199712
        },
        {
          "name": "https://www.mobilefx.com/assets/popper/popper.min.js",
          "type": "script",
          "startTime": 100.3,
          "duration": 80.2,
          "transferSize": 8665
        },
        {
          "name": "https://www.mobilefx.com/assets/smoothscroll/smooth-scroll.js",
          "type": "script",
          "startTime": 100.3,
          "duration": 84.3,
          "transferSize": 9015
        },
        {
          "name": "https://www.mobilefx.com/assets/dropdown/js/navbar-dropdown.js",
          "type": "script",
          "startTime": 100.3,
          "duration": 85.1,
          "transferSize": 1553
        },
        {
          "name": "https://www.mobilefx.com/assets/dropdown/js/nav-dropdown.js",
          "type": "script",
          "startTime": 100.3,
          "duration": 87.1,
          "transferSize": 5536
        },
        {
          "name": "https://www.mobilefx.com/assets/bootstrap/js/bootstrap.min.js",
          "type": "script",
          "startTime": 100.3,
          "duration": 87.3,
          "transferSize": 20574
        },
        {
          "name": "https://www.mobilefx.com/assets/touchswipe/jquery.touch-swipe.min.js",
          "type": "script",
          "startTime": 100.4,
          "duration": 90.1,
          "transferSize": 6863
        },
        {
          "name": "https://www.mobilefx.com/assets/viewportchecker/jquery.viewportchecker.js",
          "type": "script",
          "startTime": 100.4,
          "duration": 93,
          "transferSize": 1923
        },
        {
          "name": "https://www.mobilefx.com/assets/parallax/jarallax.min.js",
          "type": "script",
          "startTime": 100.4,
          "duration": 94.7,
          "transferSize": 6407
        },
        {
          "name": "https://www.mobilefx.com/assets/web/assets/cookies-alert-plugin/cookies-alert-script.js",
          "type": "script",
          "startTime": 100.4,
          "duration": 97.7,
          "transferSize": 816
        },
        {
          "name": "https://www.mobilefx.com/assets/web/assets/cookies-alert-plugin/cookies-alert-core.js",
          "type": "script",
          "startTime": 100.4,
          "duration": 98.5,
          "transferSize": 5455
        },
        {
          "name": "https://www.mobilefx.com/assets/bootstrapcarouselswipe/bootstrap-carousel-swipe.js",
          "type": "script",
          "startTime": 100.5,
          "duration": 99.2,
          "transferSize": 2560
        },
        {
          "name": "https://www.mobilefx.com/assets/tether/tether.min.js",
          "type": "script",
          "startTime": 100.5,
          "duration": 106.5,
          "transferSize": 9030
        },
        {
          "name": "https://www.mobilefx.com/assets/vimeoplayer/jquery.mb.vimeo_player.js",
          "type": "script",
          "startTime": 100.5,
          "duration": 108.6,
          "transferSize": 12253
        },
        {
          "name": "https://www.mobilefx.com/assets/sociallikes/social-likes.js",
          "type": "script",
          "startTime": 100.5,
          "duration": 110.8,
          "transferSize": 7240
        },
        {
          "name": "https://www.mobilefx.com/assets/imagesloaded/imagesloaded.pkgd.min.js",
          "type": "script",
          "startTime": 100.6,
          "duration": 108.9,
          "transferSize": 3212
        },
        {
          "name": "https://www.mobilefx.com/assets/masonry/masonry.pkgd.min.js",
          "type": "script",
          "startTime": 100.6,
          "duration": 112.6,
          "transferSize": 11178
        },
        {
          "name": "https://www.mobilefx.com/assets/slidervideo/script.js",
          "type": "script",
          "startTime": 100.6,
          "duration": 115.8,
          "transferSize": 2564
        },
        {
          "name": "https://www.mobilefx.com/assets/theme/js/script.js",
          "type": "script",
          "startTime": 100.6,
          "duration": 116.7,
          "transferSize": 12269
        },
        {
          "name": "https://www.mobilefx.com/assets/gallery/script.js",
          "type": "script",
          "startTime": 100.6,
          "duration": 118.6,
          "transferSize": 4116
        },
        {
          "name": "https://www.mobilefx.com/assets/gallery/player.min.js",
          "type": "script",
          "startTime": 100.6,
          "duration": 311.5,
          "transferSize": 6487
        },
        {
          "name": "https://www.mobilefx.com/assets/formoid/formoid.min.js",
          "type": "script",
          "startTime": 100.6,
          "duration": 811.5,
          "transferSize": 3645
        },
        {
          "name": "https://www.mobilefx.com/assets/isInViewport/isInViewport.min.js",
          "type": "script",
          "startTime": 100.7,
          "duration": 561.5,
          "transferSize": 1714
        },
        {
          "name": "https://fonts.googleapis.com/css?family=Raleway:100,100i,200,200i,300,300i,400,400i,500,500i,600,600i,700,700i,800,800i,900,900i&display=swap",
          "type": "css",
          "startTime": 149.4,
          "duration": 136.2,
          "transferSize": 1310
        },
        {
          "name": "https://www.google-analytics.com/analytics.js",
          "type": "script",
          "startTime": 292.6,
          "duration": 105.3,
          "transferSize": 0
        },
        {
          "name": "https://www.mobilefx.com/assets/images/background-tagled.jpg",
          "type": "css",
          "startTime": 302.6,
          "duration": 1374.1,
          "transferSize": 2184247
        },
        {
          "name": "https://www.mobilefx.com/assets/images/parallax-background-gray.jpg",
          "type": "css",
          "startTime": 303.4,
          "duration": 1003.2,
          "transferSize": 452972
        },
        {
          "name": "https://www.mobilefx.com/assets/images/parallax-background-gray-small5.jpg",
          "type": "css",
          "startTime": 304,
          "duration": 1302.5,
          "transferSize": 1192361
        },
        {
          "name": "https://fonts.gstatic.com/s/raleway/v14/1Ptrg8zYS_SKggPNwN4rWqZPAA.woff2",
          "type": "css",
          "startTime": 324.8,
          "duration": 125.4,
          "transferSize": 21290
        },
        {
          "name": "https://fonts.gstatic.com/s/raleway/v14/1Ptrg8zYS_SKggPNwIYqWqZPAA.woff2",
          "type": "css",
          "startTime": 325.2,
          "duration": 131.4,
          "transferSize": 20935
        },
        {
          "name": "https://fonts.gstatic.com/s/raleway/v14/1Ptrg8zYS_SKggPNwJYtWqZPAA.woff2",
          "type": "css",
          "startTime": 325.5,
          "duration": 108.4,
          "transferSize": 21230
        },
        {
          "name": "https://www.mobilefx.com/assets/icon54/fonts/icon54.ttf?uf6sbu",
          "type": "css",
          "startTime": 325.9,
          "duration": 1090.9,
          "transferSize": 1196447
        },
        {
          "name": "https://www.mobilefx.com/assets/web/assets/mobirise-icons/mobirise-icons.ttf?spat4u",
          "type": "css",
          "startTime": 326,
          "duration": 619.5,
          "transferSize": 51765
        },
        {
          "name": "https://www.mobilefx.com/assets/socicon/fonts/socicon.woff",
          "type": "css",
          "startTime": 326.2,
          "duration": 595.4,
          "transferSize": 38986
        },
        {
          "name": "https://www.mobilefx.com/assets/font-awesome/fonts/fontawesome-webfont.woff2?v=4.7.0",
          "type": "css",
          "startTime": 327,
          "duration": 621.9,
          "transferSize": 77459
        },
        {
          "name": "https://www.youtube.com/iframe_api",
          "type": "script",
          "startTime": 439.5,
          "duration": 138.4,
          "transferSize": 0
        },
        {
          "name": "https://www.google-analytics.com/r/collect?v=1&_v=j81&a=562240021&t=pageview&_s=1&dl=https3A2F2Fwww.mobilefx.com2F&ul=en-us&de=UTF-8&dt=mobileFXE284A220Studio%20Ltd&sd=24-bit&sr=2560x1440&vp=690x732&je=0&fl=32.0%20r0&_u=IEBAAUAB~&jid=935288409&gjid=1366951822&cid=286821536.1582990783&tid=UA-112438998-4&_gid=988220638.1582990783&_r=1&gtm=2ou2j0&z=490439194",
          "type": "img",
          "startTime": 475.8,
          "duration": 51.9,
          "transferSize": 0
        },
        {
          "name": "https://s.ytimg.com/yts/jsbin/www-widgetapi-vflZzD3G3/www-widgetapi.js",
          "type": "script",
          "startTime": 578.7,
          "duration": 100.6,
          "transferSize": 0
        },
        {
          "name": "https://graph.facebook.com/fql?q=SELECT+total_count+FROM+link_stat+WHERE+url3D22https3A2F2Fwww.mobilefx.com2F%22&callback=jQuery111205059192003988982_1582990783340&_=1582990783341",
          "type": "script",
          "startTime": 1003.6,
          "duration": 120.7,
          "transferSize": 0
        }
      ]
    }
    See Also