【问题标题】:Can you measure the time it takes to load a web page in a webView in Android?你能测量在 Android 的 webView 中加载网页所需的时间吗?
【发布时间】:2014-07-22 21:10:57
【问题描述】:

有很多关于 Android 中的 WebView 加载时间过长的问题,但是我希望能够准确计算完全加载需要多长时间,然后显示结果。

这可能吗?我可以启动一个计时器,但是 WebView 加载后是否有 HTML OnLoad 样式调用?

我的代码是基本的:

/** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);
        setContentView(R.layout.pageloadtest);

        webView = (WebView) findViewById(R.id.webView1);
        webView.loadUrl("http://www.airometricwireless.com");
}

这可以很好地加载页面。我只需要计算需要多长时间。

【问题讨论】:

    标签: android time webview load android-webview


    【解决方案1】:

    可能不科学准确,但我想你可以打电话

    long a, b;
    
    mWebView.setWebViewClient(new WebViewClient() {
    
        public void onPageStarted(WebView view, String url) {
            a = (new Date()).getTime;
        }
    
        public void onPageFinished(WebView view, String url) {
            b = (new Date()).getTime;
        }
    });
    

    然后是 b - a。

    希望对你有帮助。

    最好的问候。

    【讨论】:

    • WebViewClient 中有一个onPageStarted() 回调,您可以使用它来获取a,这样会更准确。
    【解决方案2】:

    您可以使用onPageFinished,但正如文档所说,“当 onPageFinished() 被调用时,渲染图片可能尚未更新。”

    此外,它仅对简单页面有意义,因为它不会考虑 IFRAME 或动态加载的内容,例如加载其他 JavaScript(例如社交媒体按钮、广告、跟踪脚本等)的 JavaScript。通常这些东西会导致页面性能不佳。

    当人们说“加载速度很慢”时,他们通常的意思是“我需要很长时间才能与页面交互”,这与加载资产所需的时间有很大不同。为此,您可能想测试何时从 JavaScript 触发类似 onDOMReady 的事件,或者如果不使用该事件,则当非延迟 JS 实际初始化时。

    本质上,页面一旦有动态加载行为,onPageFinished就变得毫无意义,需要用JS来衡量。

    与任何性能问题一样;

    1. 测量交互以发现瓶颈
    2. 尝试修复瓶颈并再次测量
    3. 重复直到性能可以接受为止。

    【讨论】:

      【解决方案3】:

      要完成页面加载,请使用

      webView.setWebViewClient(new WebViewClient() {
      
         public void onPageFinished(WebView view, String url) {
              // do your stuff here
          }
      });
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2015-09-13
        • 2011-02-18
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2013-02-02
        相关资源
        最近更新 更多