我正在使用Vite来构建一个带有React (类型记录)的SPA,并且我正在尝试注册一个服务工作者。我将脚本注册为module类型,而service-worker.ts位于src/web-worker/service-worker.ts。还有tsconfig.json at src/web-worker
所有东西都在Dev中工作,但是当它被建好的时候,src/web-worker/service-worker.ts is not replaced with anything equivalent。
有什么建议吗?
index.html
<!DOCTYPE html>
<htm
这里有一些背景。我需要从提取请求中截取返回数据。我已经知道怎么做了。通过在网页中注入这些代码,我可以读取获取的响应体。如下所示:
var proxyFetch = fetch;
window.fetch = async function () {
var response = proxyFetch(...arguments);
// a lot of other code as well
return response;
}
我遇到的问题是,我不能修改任何web工作者的提取功能。我无法接触到他们的“这个”背景。我最好的选择是与WorkerGlobalScope有关,但我
我正在尝试共享代码(以防止在多个文件中多次复制和粘贴代码)。在主index.ts文件和web工作者worker.ts文件之间。所有这些都被编译为浏览器的javascript。
作为一个简化的示例,下面是我希望引用代码的dependency.ts:
dependency.ts
function print_to_console(msg:string) {
console.log(msg);
}
我想在我的主要文件中引用:
index.ts
dependency.print_to_console("Print from main");
var worker = new W
我正在制作一个应用程序,并将其放到web上。但当我启动它时,在chrome中有一个空白屏幕。这是我在chrome控制台上的日志: Installed new service worker.
zone.dart:1339 Uncaught ReferenceError: firebase is not defined
at Object.ad5 (core.dart:54)
at Object.ajF (cloud_firestore_web.dart:36)
at cloud_firestore_web.dart:29
at ad0.a (async_patch.dart:316)
at a
这是我的代码:
import asyncio
import logging
import time
from aiohttp import web
logging.getLogger('aiohttp').setLevel(logging.DEBUG)
logging.getLogger('aiohttp').addHandler(logging.StreamHandler(sys.stderr))
def handle_sync(request):
web.web_logger.debug('Sync begin')
ti
我正在尝试使用importSctipts从web worker导入json数据,出现以下错误。
未捕获NetworkError:未能在“”WorkerGlobalScope“”上执行“”importScripts“”:未能加载(从服务器获取数据的my:URL)处的脚本。“”
Web worker代码在这里。我能够从我的web worker线程和main js线程发送基本消息。我想从我的服务器从web worker线程获取jsonp数据,然后回复到主js线程。
/*web worker js file to fetch json data from server and then return
据我所知,web workers需要在一个单独的JavaScript文件中编写,并像这样命名:
new Worker('longrunning.js')
我正在使用闭包编译器来组合和缩小我所有的JavaScript源代码,我不希望我的工作人员放在单独的文件中进行分发。有什么方法可以做到这一点吗?
new Worker(function() {
//Long-running work here
});
既然第一类函数对JavaScript如此重要,为什么做后台工作的标准方法必须从web服务器加载一个完整的JavaScript文件?
在我的JavaScript代码中,我有一些函数,我称之为'worker‘,它检查它是否已启动并执行一些工作
class Application
{
async runWorker()
{
while (true)
{
while (!this.isStarted)
{
await new Promise(resolve => setTimeout(resolve, 1000));
}
//do some
问题
我发现浏览器可以生成的Web工作者的数量是有限制的。
示例
主HTML / JavaScript
<script type="text/javascript">
$(document).ready(function(){
var workers = new Array();
var worker_index = 0;
for (var i=0; i < 25; i++) {
workers[worker_index] = new Worker('test.worker.js');
w