- xml - AJAX/Jquery XML 解析
- 具有多重继承的 XML 模式
- .net - 枚举序列化 Json 与 XML
- XML 简单类型、简单内容、复杂类型、复杂内容
我正在尝试升级 this (ngx-admin)免费的 Angular 模板到 Angular 5,然后尝试在 WebWorker 中运行整个应用程序,如本 SO Post 中所述.
我已成功将应用程序升级到 Angular 5,它工作正常,但是当我尝试将应用程序配置为在 Webworker 中运行时,出现以下错误:
完整代码(修改为Angular 5和webworker)可见here
我尝试在我的 webpack 配置中添加 DefinePlugin,但没有成功。
webpack.config.json:
new DefinePlugin({
window: undefined,
document: undefined
}),
我能够在 webworker 中运行新的空 angular-cli 应用程序,但我无法在 webworker 中运行这个模板。我想有一些节点包正在产生问题。
Package.json:
{
"scripts": {
"ng": "ng",
"conventional-changelog": "conventional-changelog",
"e2e": "protractor ./protractor.conf.js",
"docs": "compodoc -p src/tsconfig.app.json -d docs",
"docs:serve": "compodoc -p src/tsconfig.app.json -d docs -s",
"release:changelog": "npm run conventional-changelog -- -p angular -i CHANGELOG.md -s",
"build": "webpack",
"start": "webpack-dev-server --port=4200",
"test": "karma start ./karma.conf.js",
"pree2e": "webdriver-manager update --standalone false --gecko false --quiet"
},
"dependencies": {
"@agm/core": "1.0.0-beta.2",
"@angular/animations": "5.1.2",
"@angular/common": "5.1.2",
"@angular/compiler": "5.1.2",
"@angular/core": "5.1.2",
"@angular/forms": "5.1.2",
"@angular/http": "5.1.2",
"@angular/platform-browser": "5.1.2",
"@angular/platform-browser-dynamic": "5.1.2",
"@angular/platform-server": "5.1.2",
"@angular/platform-webworker": "^5.1.2",
"@angular/platform-webworker-dynamic": "^5.1.2",
"@angular/router": "5.1.2",
"@asymmetrik/angular2-leaflet": "^2.2.1",
"@nebular/auth": "2.0.0-rc.3",
"@nebular/theme": "2.0.0-rc.3",
"@ng-bootstrap/ng-bootstrap": "1.0.0-beta.5",
"@swimlane/ngx-charts": "^7.0.1",
"angular2-chartjs": "0.3.0",
"angular2-leaflet": "^0.1.0",
"angular2-toaster": "4.0.0",
"bootstrap": "4.0.0-beta.2",
"chart.js": "2.5.0",
"ckeditor": "4.6.2",
"classlist.js": "1.1.20150312",
"core-js": "2.5.1",
"d3": "4.8.0",
"font-awesome": "4.7.0",
"intl": "1.2.5",
"ionicons": "2.0.1",
"leaflet": "^1.2.0",
"nebular-icons": "1.0.6",
"ng2-ckeditor": "1.1.9",
"ng2-smart-table": "1.1.0",
"ng2-tree": "2.0.0-alpha.10",
"ngx-charts": "^3.0.2",
"ngx-echarts": "1.2.2",
"normalize.css": "6.0.0",
"pace-js": "1.0.2",
"roboto-fontface": "0.8.0",
"rxjs": "5.5.6",
"socicon": "3.0.5",
"tether": "1.4.0",
"tinymce": "4.5.7",
"typeface-exo": "0.0.22",
"web-animations-js": "2.2.5",
"zone.js": "0.8.19"
},
"devDependencies": {
"@angular/cli": "1.5.0",
"@angular/compiler-cli": "5.1.2",
"@angular/language-service": "5.1.2",
"@compodoc/compodoc": "1.0.5",
"@types/d3-color": "1.0.4",
"@types/jasmine": "2.5.54",
"@types/jasminewd2": "2.0.3",
"@types/leaflet": "^1.2.4",
"@types/node": "8.5.2",
"codelyzer": "3.2.1",
"conventional-changelog-cli": "1.3.4",
"husky": "0.13.3",
"jasmine-core": "2.6.4",
"jasmine-spec-reporter": "4.1.1",
"karma": "1.7.1",
"karma-chrome-launcher": "2.1.1",
"karma-cli": "1.0.1",
"karma-coverage-istanbul-reporter": "1.3.0",
"karma-jasmine": "1.1.0",
"karma-jasmine-html-reporter": "0.2.2",
"npm-run-all": "4.1.2",
"protractor": "5.1.2",
"rimraf": "2.6.1",
"stylelint": "7.13.0",
"ts-node": "3.2.2",
"tslint": "5.7.0",
"tslint-language-service": "0.9.6",
"typescript": "2.6.2",
"webpack-dev-server": "~2.9.3",
"webpack": "~3.8.1",
"autoprefixer": "^6.5.3",
"css-loader": "^0.28.1",
"cssnano": "^3.10.0",
"exports-loader": "^0.6.3",
"file-loader": "^1.1.5",
"html-webpack-plugin": "^2.29.0",
"less-loader": "^4.0.5",
"postcss-loader": "^1.3.3",
"postcss-url": "^5.1.2",
"raw-loader": "^0.5.1",
"sass-loader": "^6.0.3",
"source-map-loader": "^0.2.0",
"istanbul-instrumenter-loader": "^2.0.0",
"style-loader": "^0.13.1",
"stylus-loader": "^3.0.1",
"url-loader": "^0.6.2",
"circular-dependency-plugin": "^3.0.0",
"webpack-concat-plugin": "1.4.0",
"copy-webpack-plugin": "^4.1.1",
"uglifyjs-webpack-plugin": "1.0.0"
}
}
最佳答案
Web worker 不在窗口中运行,因此没有 window 对象。但是,如果您正在使用使用窗口对象的库,则可以使用代码顶部的 self 变量自行分配它。
const window = self;
来自 MDN :
A worker is an object created using a constructor (e.g. Worker()) that runs a named JavaScript file — this file contains the code that will run in the worker thread; workers run in another global context that is different from the current window. Thus, using the window shortcut to get the current global scope (instead of self) within a Worker will return an error.
The worker context is represented by a DedicatedWorkerGlobalScope object in the case of dedicated workers (standard workers that are utilized by a single script; shared workers use SharedWorkerGlobalScope). A dedicated worker is only accessible from the script that first spawned it, whereas shared workers can be accessed from multiple scripts.
关于javascript - 在 webworker 中运行 Angular 5 应用程序会导致窗口对象未定义,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48035099/
我无法将 wasm.instance.exports 对象发布到 WebWorkers 或从 WebWorkers 发布。任何帮助将不胜感激。 最佳答案 通过 postMessage API 发送的消
我正在使用 webworks 开发 Blackberry 10 App,我想使用 webworks 获取设备 IMEI 号码。我没有找到任何解决方案来在互联网上获取 IMEI 号码。 最佳答案 查看身
我无法使用安装在默认位置的 SDK 来构建 Ripple。我收到错误消息“Oh Snap!Build request failed with message: ./Applications/Black
我曾尝试在 Facebook 上分享,但无法分享任何内容。我使用的代码是:- 在 JavaScript 中 FB.init({ appId: 'some id',
因此,我尝试进行测试,看看 WebWorker 线程 ( https://github.com/audreyt/node-webworker-threads ) 可以在多核系统中使用 NodeJS 改
在网上搜索了很多天后,我从来没有找到我的问题的答案,甚至没有找到任何人设法做我正在尝试的事情。 我正在尝试在 Blackberry 的 WebWorks 应用程序中实现推送通知,但没有任何运气。我尝试
我有一个使用 Javascript 递归函数的第一个版本,它产生了预期的结果。下面是工作版本: // Call the recursive function and get final (a,b) r
我正在尝试从 Ripple 模拟器中打包并签署一个 BlackBerry webworks 应用程序(我也尝试过使用 bbwp)。 打包工作正常,但签名会返回非常有用的错误消息 [ERROR] Sig
调试网络 worker 的最佳方法是什么?我的工作人员似乎在某个地方出现了故障,但我似乎无法将内容记录到控制台来弄清楚发生了什么。有没有办法使用 firebug 或 webkit 的检查器在 webw
我有一个数组,需要将其从 WebWorker 传输回主线程。据我所知,只有 ArrayBuffers 和 TypedArrays 是可传输的,其他任何内容都是复制而不是传输的。 我遇到的问题是数组包含
我一直在研究如何与网络 worker 之间传输数据,我发现的每个示例都显示以下格式: var myData = new Uint8ClampedArray(256); postMessage(myDa
如何将函数(的副本)从我的主线程发送到我的工作线程? 每当我尝试:worker.postMessage({data, func: (data) => data)时,firefox都会给我一条错误消息:
在 WebWorker 中运行的代码是否在不同的 JavaScript 运行时领域中运行? 最佳答案 是的。 Step 6 in the WHATWG spec . Call the JavaScri
这个问题在这里已经有了答案: How to allow Web Workers to receive new data while it still performing computation?
有没有办法在 JavaScript 中破坏 HTML5 WebWorker? 这是我的情况:我有一个 Web 应用程序生成相当数量的 WebWorker(在 16 到 32 之间的任何地方)来优化一些
我一直致力于优化一些长时间运行的 JavaScript,并尝试实现 WebWorkers。 我有一组独立的任务要计算。在我的初始测试中,有 80 个任务,在主线程上用了 250 毫秒完成。我认为我可以
我正在使用 webworks sdk 开发一个剧本应用程序。 我正在尝试通过发送和接收数据来发出 http 请求(方法:发布)。 我可以从服务器获取响应,但是服务器无法获取 $POST 数据,当我尝试
快速提问 如果我有一个 WebWorker有一个返回 Observable 的函数回到UI代码,如果我再订阅Observable,是在UI线程上运行的observable还是WebWorker线? 我
我正在为 Blackberry Playbook 开发一个 WebWorks 应用程序。他们文档中的这个页面说 You can display a specific type of virtual k
任何人都知道是否可以在 Web Worker 中合并一组立方体几何图形并将其传递回主线程?认为这可以减少合并大量立方体时的延迟。 Three.JS 在 Web Worker 中是否可以正常工作,如果可
我是一名优秀的程序员,十分优秀!