大佬教程收集整理的这篇文章主要介绍了angularjs – 是否可以在Web worker中运行Angular?,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
附加信息:
这里的想法是用于远程服务器上的数据同步,因此您使主应用程序使用“在线|离线”模式,将数据保存到本地Web存储和|或远程服务器(使用“ Webservice“)和工作人员透明地使用相同的服务来同步数据……
你能展示一些在工作者中运行应用程序的代码吗?
感谢您的反馈意见
在主应用程序中,在工厂/服务中,您可以拥有类似的东西
var worker = new $window.Worker('worker.js');
然后在worker.js中,您可以修改全局范围,以便加载Angular:
// Angular needs a global window object self.window = self; // Skeleton properties to get Angular to load and bootstrap. self.history = {}; self.document = { readyState: 'complete',querySELEctor: function() {},createElement: function() { return { pathname: '',setAttribute: function() {} } } }; // Load Angular: must be on same domain as this script self.importScripts('angular.js'); // Put angular on global scope self.angular = window.angular; // Standard angular module deFinitions self.importScripts('worker-app.js'); self.importScripts('shared-module.js'); // No root element seems to work fine self.angular.bootstrap(null,['worker-app']);
您可以像任何其他模块一样定义共享模块:
angular.module('shared-module',[]) .factory('SharedFactory',function() { return { MyFunc: function() { return 'some-data'; } }; });
在worker-app.js中,您可以使用共享模块定义主应用程序
var workerApp = angular.module('worker-app',['shared-module']);
例如,将共享组件注入到工作者应用程序的运行回调中.
workerApp.run(function(SharedFactory,$window) { $window.onmessage = function(E) { var workerResult = SharedFactory.MyFunc(); $window.postmessage(workerResult); }; });
在前景Angular应用程序中,您可以通过通常的脚本标记包含shared-module.js,并像往常一样使用依赖注入来访问其组件
var foregroundApp = angular.module('forground-app',['shared-module']); foregroundApp.controller(function(SharedFactory,$scopE) { // Use SharedFactory as needed });
要确认,前台和工作者应用程序中共享模块的实例是不同的.
以上是大佬教程为你收集整理的angularjs – 是否可以在Web worker中运行Angular?全部内容,希望文章能够帮你解决angularjs – 是否可以在Web worker中运行Angular?所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。