Web Worker Javascript无法在其他javascript文件中找到函数

时间:2014-03-24 07:08:26

标签: javascript jquery html

我有一个像这样的HTML文件:

<html>

    <head>

        <title>World Aviation</title>

        <script language="javascript" src="./jquery-min.js"> </script>
        <script language="javascript" src="./jsDraw2D.js"> </script>
        <script language="javascript" src="./script.js"> </script>
    </head>
<body>

         <input onClick="startAnimBackground();" type="button" value="Start"/>

         <script language="javascript">

                initAirports();

                initRoutes();

            var w;

            function startAnimBackground()
            {
                if(typeof(Worker) !== "undefined")
                {
                    if(typeof(w) == "undefined")
                    {
                        w = new Worker("start_script.js");
                    }
                } else {
                    startAnimation();
                }
            }
         </script>

</body> 

</html>

文件“start_script.js”只包含一行调用startAnimation()函数。此功能位于“script.js”

我的问题是:我的浏览器支持web-workers,所以它创建了一个web-worker并加载了文件“start_script.js”,但它无法调用函数“startAnimation()”,表明它无法找到该函数。但是这个函数位于head.js中,它包含在head部分中。因此,我可以得出的唯一结论是web-worker JS文件具有不同的范围,因此无法包含head部分中指定的3个javascript文件。那么我该怎么办呢? 感谢。

1 个答案:

答案 0 :(得分:2)

网络工作者不与主脚本共享函数,变量或脚本。

要加载依赖项,请在工作程序中调用importScripts()

要允许您的Web工作者与主脚本或DOM进行交互或影响,您必须使用消息传递并让主脚本监听,解释和处理消息。

请参阅:https://developer.mozilla.org/en-US/docs/Web/Guide/Performance/Using_web_workers