2012-09-14 14 views
14

Tengo una secuencia de comandos en http://localhost/js/foo.js que necesita generar un Trabajador web a partir del archivo http://localhost/js/fooWorker.js. Supuse que sólo podía hacer algo como esto:Javascript no resolvió la ruta del trabajador en relación con la secuencia de comandos actual

var worker = new Worker('fooWorker.js') 

Sin embargo, esto resulta en un error 404, ya que el navegador no puede encontrar http://localhost/fooWorker.js. Tenía la impresión de que las rutas de los trabajadores se resolvieron en relación con el script que engendraba al trabajador, así que ¿no debería simplemente poder especificar el nombre de otro archivo .js en el mismo directorio sin tener que proporcionar una ruta absoluta? ¿Estoy haciendo algo mal?

+0

acuerdo a h ttps: //developer.mozilla.org/en-US/docs/DOM/Using_web_workers? redirectlocale = en-US & redirectslug = Using_web_workers # Spawning_subworkers, esto debería funcionar ... – ziesemer

+0

@ziesemer: El enlace que proporcionó habla sobre los subtrabajadores. Estos aún no son totalmente compatibles. –

Respuesta

8

De http://www.w3.org/TR/workers/:

Cuando se invoca la (scriptURL) constructor del trabajador, el agente de usuario debe ejecute los siguientes pasos:

  1. Resolver el argumento scriptURL relativa a la base de la secuencia de comandos entrada URL, cuando se invoca el método.
3

En realidad, debería ser relativa a la ruta del documento incrustado

Por ejemplo,

tengo

pathDoc\docA.html 
js\b.js 
js\worker\c.js 

continuación código debe ser

var worker = new Worker('..\js\worker\c.js') 
+0

Intenté esto en una aplicación ASP.Net MVC alojada en IIS. Pero no resolvió el camino. En la pestaña de la red F12 muestra 404. Cualquier idea en los sitios alojados IIS –

Cuestiones relacionadas