Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

138
Views
Actualización del front-end de la aplicación web de Google en parte a través de la secuencia de comandos

Tengo una aplicación web que al hacer clic en un botón inicia una secuencia de comandos y completa el valor de retorno en un lapso, similar a la siguiente:

página.html

 <button id="btn">Run function</button> <span id="result_span"> <!--return value from doStuff goes here--> </span> <script> document.getElementById("btn").addEventListener("click",init_function); function init_function(){ console.log('init') let updateLocation = document.querySelector('#result_span') function onFailure(error){ let warning = `<span style="color:red">${error}</span>`; updateLocation.innerHTML = warning; }; function onSuccess(element){ let result = element; updateLocation.innerHTML = result; }; google.script.run.withFailureHandler(onFailure) .withSuccessHandler(onSuccess) .doStuff(); } </script>

código.gs

 function doStuff(){ //do stuff return string; }

Esto funciona correctamente, pero ¿cómo puedo actualizar la interfaz de usuario del front-end mientras se ejecuta el script? Por ejemplo, algo como:

 function doStuff(){ //do stuff update-the-user-part-one //do more stuff update-the-user-part-two //do even more stuff return string; }

Desafortunadamente console.log('update-the-user-part-one') no va al frente, pero tal vez haya alguna forma de usar devoluciones de llamada o prometer tener <span id="updates"></span> innerHTML actualizar durante el script.

about 4 years ago · Juan Pablo Isaza
1 answers
Answer question

0

Si lo que desea es una actualización en tiempo real en el sitio durante la ejecución del script, no pude encontrar ninguna referencia o recurso para que funcione.

Aunque, pude simular un poco lo que quieres a continuación. Es posible que este enfoque no sea óptimo, pero aun así logrará lo que desea (en apariencia).

Suponiendo que esta es su función:

 function doStuff(){ // do part 1 then update site updateTheUserP1 // do part 2 then update site updateTheUserP2 // do the last part and return the final value string = "done all"; return string; }

Le propongo que separe su función en múltiples funciones dependiendo de cuándo desee que se actualice el sitio. Así que decidí dividirlo en 3 partes.

 function updateTheUserP1(){ string = "done 1"; // assuming part 1 finishes after 1 second Utilities.sleep(1000) return string; } function updateTheUserP2(){ string = "done 2"; // assuming part 2 finishes after 1 second Utilities.sleep(1000) return string; } function doStuff(){ string = "done all"; // assuming the last part finishes after 1 second Utilities.sleep(1000) return string; }

Entonces querrá que sus llamadas en el lado del cliente se conecten en cascada:

 function do1(element){ updateLocation.innerHTML = element; google.script.run.withFailureHandler(onFailure) .withSuccessHandler(do2) .updateTheUserP2(); }; function do2(element){ updateLocation.innerHTML = element; google.script.run.withFailureHandler(onFailure) .withSuccessHandler(onSuccess) .doStuff(); }; function onSuccess(element){ let result = element; updateLocation.innerHTML = result; }; google.script.run.withFailureHandler(onFailure) .withSuccessHandler(do1) .updateTheUserP1();

Producción:

producción

about 4 years ago · Juan Pablo Isaza Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!