2011-06-02 12 views
16

Tengo una URL que puedo cargar en la vista web. Si abro la vista web a través del navegador, me lleva menos tiempo, pero si cargo la URL en la vista web, lleva más tiempo. Además, si tengo que reutilizar la misma página web con la misma URL en otra pantalla, no puedo hacerlo porque si uso el mismo objeto webview en diferentes pantallas, también lleva tiempo cargar la URL.Cómo mejorar el tiempo de carga de la vista web

¿Cómo hago para que mi vista web cargue una URL de manera instantánea?

+0

WebView intercambia velocidad por flexibilidad. Si necesita trabajar con contenido web más rápido, considere usar un navegador en lugar de incrustar un WebView en su aplicación. Es posible que pueda ver algunas mejoras al deshabilitar el almacenamiento en caché liberal en WebView como se ve en esta solución: http://stackoverflow.com/questions/3652583/enhance-webview-performance-should-be-the-same-performanceasas -native-web-browser/4799448 # 4799448 – Brian

+0

Hice dos cosas: 1) llamar a los métodos de carga en vistas web cuando el usuario inicia la aplicación. 2) Si la vista web no está lista y el usuario hizo clic en ella, aparecerá un cuadro de diálogo de progreso del cargador – Sandeep

+0

, este enlace lo ayudará. http://stackoverflow.com/questions/7422427/android-webview-slow – Azahar

Respuesta

1

Usted podría utilizar los plugins YSlow o Google Pageload para el navegador, para obtener consejos específicos sobre cómo mejorar la carga de la página y acelerar su página.

0

De forma predeterminada, un WebView no ofrece widgets tipo navegador, no habilita JavaScript y los errores de página web se ignoran.

aquí pego pequeña parte del código de zirco-browser

settings.setJavaScriptEnabled(Controller.getInstance().getPreferences().getBoolean(Constants.PREFERENCES_BROWSER_ENABLE_JAVASCRIPT, true)); 
      settings.setLoadsImagesAutomatically(Controller.getInstance().getPreferences().getBoolean(Constants.PREFERENCES_BROWSER_ENABLE_IMAGES, true)); 
      settings.setUseWideViewPort(Controller.getInstance().getPreferences().getBoolean(Constants.PREFERENCES_BROWSER_USE_WIDE_VIEWPORT, true)); 
      settings.setLoadWithOverviewMode(Controller.getInstance().getPreferences().getBoolean(Constants.PREFERENCES_BROWSER_LOAD_WITH_OVERVIEW, false)); 
      settings.setSaveFormData(Controller.getInstance().getPreferences().getBoolean(Constants.PREFERENCES_BROWSER_ENABLE_FORM_DATA, true)); 
      settings.setSavePassword(Controller.getInstance().getPreferences().getBoolean(Constants.PREFERENCES_BROWSER_ENABLE_PASSWORDS, true)); 
      settings.setDefaultZoom(ZoomDensity.valueOf(Controller.getInstance().getPreferences().getString(Constants.PREFERENCES_DEFAULT_ZOOM_LEVEL, ZoomDensity.MEDIUM.toString())));    
      settings.setUserAgentString(Controller.getInstance().getPreferences().getString(Constants.PREFERENCES_BROWSER_USER_AGENT, Constants.USER_AGENT_DEFAULT)); 
+0

¿Alguna otra optimización que pueda sugerir? :-) –

+0

@RavindranathAkila La pregunta en sí misma código de lo que el usuario intentó ... sin saberlo solo me sugirió lo que mencioné en mi respuesta – dhams

0

conjunto rendir prioridad alta para su vista web puede resolver un problema hasta cierto punto su algo como esto

webview.getSettings().setRenderPriority(RenderPriority.HIGH); 
+2

Está en desuso – AlexioVay

Cuestiones relacionadas