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

244
Views
¿Un controlador de eventos de "mensaje" procesa mensajes en serie o concurrente?

Si alguna página A envía una secuencia de mensajes a la página B que los escucha y los maneja, ¿el detector de eventos procesa esos mensajes en serie? Si lo hace de manera concurrente, debo tener cuidado con las carreras de datos, ¿no?

En particular, considere alguna página A (en https://a.example.com/index.html ):

 <script> const win = open('https://b.example.com/index.html'); setTimeout(() => { for (let i = 0; i < 1024; i++) { win.postMessage(i, '*'); } }, 1000); </script>

y la página B (en https://b.example.com/index.html ):

 <script> let count = 0; window.addEventListener('message', () => {count++}); </script>

Cuando se han procesado todos los mensajes, ¿se garantiza que la variable de count de la página B tenga el valor 1024 ? ¿O no existe tal garantía, porque los mensajes se procesan de manera simultánea y es posible que se pierdan las actualizaciones de la variable de count ?

El estándar de mensajería web no es el más fácil de leer... Menciona colas , que parecen indicar el manejo de mensajes en serie (no concurrentes), pero me gustaría estar seguro.

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

0

Cada MessagePort tiene su propia cola (fuente de tareas) donde se ponen en cola todos los mensajes. Luego, cuando el bucle de eventos elija esta cola, se enviará un evento desde la tarea en cola. El bucle de eventos siempre elegirá la tarea más antigua de una cola (orden FIFO). Bueno, para ser técnicamente correcto al 100%, elegirá la primera tarea ejecutable de la cola de tareas, pero en este caso particular es exactamente lo mismo.

Si A es la única fuente de un mensaje nuevo en B , entonces sí, puede estar seguro de que el valor será 1024 .

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!