Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

184
Visualizações
La relación entre las funciones "onBodyLoad()/onDeviceReady()" de Phonegap y "$(document).ready()" de Jquery

Estoy usando PhoneGap + jQuery Mobile en Android, estoy confundido acerca de las funciones "onBodyLoad()/onDeviceReady()" de Phonegap y "$(document).ready()" de Jquery.

En los documentos de PhoneGap:

PhoneGap consta de dos bases de código: nativo y JavaScript. Mientras se carga el código nativo, se muestra una imagen de carga personalizada. Sin embargo, JavaScript solo se carga una vez que se carga el DOM. Esto significa que su aplicación web podría, potencialmente, llamar a una función JavaScript de PhoneGap antes de que se cargue.

El evento PhoneGap deviceready se activa una vez que PhoneGap se ha cargado por completo. Después de que el dispositivo se haya disparado, puede realizar llamadas de forma segura a la función PhoneGap.

Por lo general, deseará adjuntar un detector de eventos con document.addEventListener una vez que se haya cargado el DOM del documento HTML.

En el documento jQuery:

Si bien JavaScript proporciona el evento de carga para ejecutar el código cuando se representa una página, este evento no se activa hasta que todos los activos, como las imágenes, se hayan recibido por completo. En la mayoría de los casos, el script se puede ejecutar tan pronto como la jerarquía DOM se haya construido por completo. Se garantiza que el controlador pasado a .ready() se ejecutará después de que el DOM esté listo, por lo que este suele ser el mejor lugar para adjuntar todos los demás controladores de eventos y ejecutar otro código jQuery. Al usar secuencias de comandos que se basan en el valor de las propiedades de estilo CSS, es importante hacer referencia a hojas de estilo externas o incrustar elementos de estilo antes de hacer referencia a las secuencias de comandos.

En los casos en que el código se basa en activos cargados (por ejemplo, si se requieren las dimensiones de una imagen), el código debe colocarse en un controlador para el evento de carga.

Mis experimentos muestran que ready() siempre es anterior a onDeviceReady(), ¿cómo explicar esto? ¿Cómo debo usarlos? ¿Debo poner ready() en onDeviceReady() para que todas las llamadas sean seguras?

Gracias de antemano.

Saludos, Chris

over 4 years ago · Santiago Trujillo
1 Respostas
Responde à pergunta

0

$(document).ready siempre se activará primero porque se activa cuando se han cargado todos los elementos DOM. Es posible que las imágenes, las funciones de javascript, css, etc. no se hayan cargado en este momento.

Por lo tanto, PhoneGap le pide que coloque el método onload en el método onLoad del cuerpo para que se active cuando esa parte particular del DOM esté lista. Una vez que el DOM está preparado, crea un detector de eventos para garantizar que phonegap.js esté listo (y no solo la interfaz de usuario de la aplicación, por ejemplo). Solo después de cargar phonegap.js, puede usar las funciones que proporciona.

Así que sí, $(document).ready se activará primero, pero eso no significa que puedas usar phonegap.js (las llamadas 'api'). No puede poner $(document).ready dentro de otra función (hasta donde yo sé), ya que se activa cuando se carga el DOM. Sin embargo, puede (pero no debe) llamar a su función onDeviceReady desde $(document).ready . El problema con esto es que si el dispositivo NO está listo, las llamadas a la API no se realizarán.

Así que seguiría usando la cadena body onLoad/onDeviceReady que han configurado. Déjame saber si esto necesita más elaboración.

over 4 years ago · Santiago Trujillo Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda