当前位置: 首页 > news >正文

php网站开发基础教程itc 做市场分析的网站

php网站开发基础教程,itc 做市场分析的网站,百度收录方法,盘锦化工网站建设odoo16前端框架源码阅读——boot.js 从名字就能看出来#xff0c;这个文件是一个启动文件。 odoo前端将所有的js打包成了两个文件#xff0c;一个是common.js,另一个是backend.js, 而common.js 是最先加载的 在common.js打包的js文件中最先加载的是下面的文件#xff0c;看…odoo16前端框架源码阅读——boot.js 从名字就能看出来这个文件是一个启动文件。 odoo前端将所有的js打包成了两个文件一个是common.js,另一个是backend.js, 而common.js 是最先加载的 在common.js打包的js文件中最先加载的是下面的文件看名字就就知道这是为了兼容性应该不重要。 /* /web/static/src/legacy/js/promise_extension.js */第二个文件就是boot.js, 这个文件非常重要从名字就能看出来是一个启动文件 /* /web/static/src/boot.js */odoo自定义了一个小型的模块系统用于管理各odoo模块中的前端代码并自行解决各代码之间的依赖关系。相关代码在addons/web/static/src/js/boot.js中所以这个资源文件是需要第一个加载的文件。 boot.js在启动时会创建一个全局的变量’odoo’该变量有几个预设的函数用于管理每个javascript模块。每个js模块其实就是一段代码具有名称或者可能的依赖关系。 if (!globalThis.odoo) {globalThis.odoo {};}var odoo globalThis.odoo;定义了一个全局变量odoo这里提一下globalThis这是为了兼容node环境和浏览器环境而创造出的js环境下的顶层对象在浏览器环境下跟window对象是一样的。 然后定了odoo对象的一些属性和函数最常见的就是odoo.define odoo.define function () {var args Array.prototype.slice.call(arguments);var name typeof args[0] string ? args.shift() : __odoo_job jobUID;var factory args[args.length - 1];var deps;if (args[0] instanceof Array) {deps args[0];} else {deps [];factory.toString().replace(commentRegExp, ).replace(cjsRequireRegExp, function (match, dep) {deps.push(dep);});}if (!(deps instanceof Array)) {throw new Error(Dependencies should be defined by an array, deps);}if (typeof factory ! function) {throw new Error(Factory should be defined by a function, factory);}if (typeof name ! string) {throw new Error(Invalid name definition (should be a string, name);}if (name in factories) {throw new Error(Service name already defined);}factory.deps deps;factories[name] factory;let promiseResolve;const promise new Promise((resolve) {promiseResolve resolve;});jobs.push({name: name,factory: factory,deps: deps,resolve: promiseResolve,promise: promise,});deps.forEach(function (dep) {jobDeps.push({ from: dep, to: name });});odoo.__DEBUG__.processJobs();};这个函数是定义odoo前端模块的函数。它可以有两个或者三个参数 两个参数在模块中定义依赖关系。 odoo.define(module.A, function (require) {use strict;var A ...;return A;});odoo.define(module.B, function (require) {use strict;var A require(module.A);var B ...; // something that involves Areturn B;});上面的odoo.define()用于标准的odoo定义前端js模块的函数第一个参数表示这个模块的名称如果后面没有其它地方继承此js模块也可以不用取名。第二个参数是一个匿名函数传入参数为require这个函数就是实际的js业务代码。如果你想引用其它的js模块可以通过require(‘module.A’)的语法引入。这里的require名称是固定的不能改变。另外odoo.define()也提供了一种显式的依赖定义方法如 odoo.define(module.Something, [module.A, module.B], function (require) {use strict;var A require(module.A);var B require(module.B);// some code});从上面的实例中我们可以看出odoo.define()函数有三个参数 moduleNamejavascript模块的名称。它应该是一个唯一的字符串。约定是odoo插件的名称后跟一个特定的描述。例如web.Widget描述了在Web插件中定义的模块该模块导出Widget类因为首字母大写如果名称不是唯一的则将引发异常并将其显示在控制台中。如果你定义的时候没有此参数则系统会自动生成一个带时间戳的唯一名称dependencies第二个参数是可选的。如果给出的话它应该是一个字符串列表每个字符串对应一个javascript模块名称。这描述了执行模块之前需要加载的依赖项。如果此处未明确给出依赖项则模块系统将通过在函数上调用toString然后使用正则表达式查找所有require语句从函数中提取它们function最后一个参数是定义模块的函数。它的返回值是模块的值可以将其传递给需要它的其他模块。请注意异步模块有一个小例外下面会讲到。 在Odoo中有可能模块在准备好之前需要执行一些工作。例如它可以执行rpc加载一些数据。在这种情况下模块简单地返回一个Promise。 这时在注册模块之前模块系统将仅等待Promise完成。 参考 https://www.cnblogs.com/pythonClub/p/17305994.html
http://www.w-s-a.com/news/799426/

相关文章:

  • 网站弹窗是怎么做的长沙智优营家
  • 手机网站菜单设计模板菜单网站图片素材
  • 浙江网站推广爱企查企业查询入口
  • 公司网站平台vs2012网站开发课程设计
  • 哪些方法可以建设网站做网站失败
  • 龙岗网站建设技术wordpress左右两栏
  • 电子商务网站开发与应用的介绍怎么查询域名是否备案
  • 想做一个自己设计公司的网站怎么做的权威发布型舆情回应
  • 做ppt用的音效网站python基础教程网易
  • 可以做免费广告的网站有哪些做视频赚钱的国外网站
  • 苏州做物流网站电话郑州网站高端网站设计
  • 网站建设音乐插件怎么弄wordpress添加数据库文件
  • 汽车行业做网站福建省第二电力建设公司网站
  • delphi做网站开发商城网站建设价位
  • 网站宣传片3 阐述网站建设的步骤过程 9分
  • 公司网站怎么做站外链接哪里有做胎儿dna亲子鉴定
  • 潍坊做电商的网站建设wordpress 特效主题
  • 做网站和app哪个难公司网上注册系统
  • 关于网站建设外文文献系部网站建设
  • 高端设计网站都有哪些月付网站空间提供商
  • 家政 东莞网站建设优化设计官方电子版
  • 做网站如何使用网页插件上海造价信息网
  • 承德网站制作加盟天津做优化的网站有多少家
  • 北京市保障性住建设投资中心网站首页专业做网站联系电话
  • 镇江网站建设方式优化单页面网站教程
  • 做手机网站公司北京网页设计公司兴田德润实惠
  • 域名申请好了 要怎么做网站百度推广开户渠道
  • 电商网站建设 数商云焦作黄河交通学院
  • 做一个网站成本多少太原网站维护
  • 网站建设制作设计优化怎么制作网页步骤