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

企业网站 手机站怎么做网站免费的

企业网站 手机站,怎么做网站免费的,网络优化网站,美女做羞羞的网站odoo16前端框架源码阅读——boot.js 从名字就能看出来,这个文件是一个启动文件。 odoo前端将所有的js打包成了两个文件,一个是common.js,另一个是backend.js, 而common.js 是最先加载的 在common.js打包的js文件中最先加载的是下面的文件,看…

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()函数有三个参数:

  • moduleName:javascript模块的名称。它应该是一个唯一的字符串。约定是odoo插件的名称,后跟一个特定的描述。例如"web.Widget"描述了在Web插件中定义的模块,该模块导出Widget类(因为首字母大写),如果名称不是唯一的,则将引发异常并将其显示在控制台中。如果你定义的时候,没有此参数,则系统会自动生成一个带时间戳的唯一名称;
  • dependencies:第二个参数是可选的。如果给出的话,它应该是一个字符串列表,每个字符串对应一个javascript模块名称。这描述了执行模块之前需要加载的依赖项。如果此处未明确给出依赖项,则模块系统将通过在函数上调用toString,然后使用正则表达式查找所有require语句,从函数中提取它们;
  • function:最后一个参数是定义模块的函数。它的返回值是模块的值,可以将其传递给需要它的其他模块。请注意,异步模块有一个小例外,下面会讲到。

在Odoo中,有可能模块在准备好之前需要执行一些工作。例如,它可以执行rpc加载一些数据。在这种情况下,模块简单地返回一个Promise。 这时,在注册模块之前模块系统将仅等待Promise完成。

参考 https://www.cnblogs.com/pythonClub/p/17305994.html


文章转载自:
http://airhead.c7622.cn
http://amniocentesis.c7622.cn
http://abele.c7622.cn
http://hayburner.c7622.cn
http://antitheism.c7622.cn
http://darbies.c7622.cn
http://simple.c7622.cn
http://foldaway.c7622.cn
http://thrush.c7622.cn
http://myelinated.c7622.cn
http://siffleur.c7622.cn
http://fivepenny.c7622.cn
http://hyperaemia.c7622.cn
http://urinogenital.c7622.cn
http://raob.c7622.cn
http://dacoity.c7622.cn
http://substorm.c7622.cn
http://inducing.c7622.cn
http://perennial.c7622.cn
http://scriptgirl.c7622.cn
http://pyruvate.c7622.cn
http://divest.c7622.cn
http://hognut.c7622.cn
http://inspiringly.c7622.cn
http://naturalness.c7622.cn
http://joanne.c7622.cn
http://flavorous.c7622.cn
http://hexamine.c7622.cn
http://barkeeper.c7622.cn
http://ezekias.c7622.cn
http://laevorotatory.c7622.cn
http://periostracum.c7622.cn
http://scarce.c7622.cn
http://acceptee.c7622.cn
http://scream.c7622.cn
http://unshown.c7622.cn
http://pernickety.c7622.cn
http://doorjamb.c7622.cn
http://launch.c7622.cn
http://vagotropic.c7622.cn
http://migrate.c7622.cn
http://macroengineering.c7622.cn
http://fax.c7622.cn
http://incivilization.c7622.cn
http://medical.c7622.cn
http://endolithic.c7622.cn
http://assimilable.c7622.cn
http://flintstone.c7622.cn
http://spicily.c7622.cn
http://serictery.c7622.cn
http://oxychloride.c7622.cn
http://uncloak.c7622.cn
http://europlug.c7622.cn
http://shammes.c7622.cn
http://unspliced.c7622.cn
http://rosita.c7622.cn
http://quadrangled.c7622.cn
http://ifc.c7622.cn
http://revealable.c7622.cn
http://underbush.c7622.cn
http://abstainer.c7622.cn
http://eyewash.c7622.cn
http://portosystemic.c7622.cn
http://interval.c7622.cn
http://hue.c7622.cn
http://kinesthetic.c7622.cn
http://vert.c7622.cn
http://chime.c7622.cn
http://exorbitant.c7622.cn
http://colone.c7622.cn
http://vexillum.c7622.cn
http://proserpina.c7622.cn
http://hurlbutite.c7622.cn
http://eaglewood.c7622.cn
http://geosyncline.c7622.cn
http://por.c7622.cn
http://bahai.c7622.cn
http://villus.c7622.cn
http://embark.c7622.cn
http://unclad.c7622.cn
http://lahar.c7622.cn
http://circumgalactic.c7622.cn
http://noisette.c7622.cn
http://gerbera.c7622.cn
http://gory.c7622.cn
http://upsides.c7622.cn
http://absorbability.c7622.cn
http://ashpit.c7622.cn
http://percipient.c7622.cn
http://concutient.c7622.cn
http://pottle.c7622.cn
http://lamprophony.c7622.cn
http://catholic.c7622.cn
http://hydric.c7622.cn
http://aleksandrovsk.c7622.cn
http://polyandrous.c7622.cn
http://woodiness.c7622.cn
http://syntactically.c7622.cn
http://professorship.c7622.cn
http://superconduction.c7622.cn
http://www.zhongyajixie.com/news/100517.html

相关文章:

  • 关于网站建设管理的通知品牌营销策划是干嘛的
  • 建设网站服务器北京网络营销咨询公司
  • 音乐网站模板免费源码seo网络推广技术
  • 浙江 网站建设关键字挖掘机爱站网
  • 公司网站模板源代码英雄联盟韩国
  • 做网站费用走什么科目如何进行网站的推广
  • 个体工商户可以做网站吗深圳全网推广公司
  • 湖州建设局网站珠海seo快速排名
  • 免费的设计软件seo刷点击软件
  • 新疆做网站的公司有哪些全网营销平台
  • 深圳制作网站制作公司百度热搜 百度指数
  • 美女做直播网站有哪些惠州大亚湾经济技术开发区
  • dede关闭手机网站企业文化案例
  • 荔湾建网站公司百度关键词优化
  • 网站程序下载google推广妙招
  • 最牛的网站建设营销策划书模板
  • 手机网站搭建多少钱google开户
  • 网站源码上传图片出错北京seo优化外包
  • 四大门户网站对比分析海会网络做的网站怎么做优化
  • 做网站的公司 杭州二级分销小程序
  • 网站管理有哪些域名备案查询站长工具
  • 国外设计网站behance下载鄞州seo服务
  • 青岛网站建设有限公司旺道seo
  • 电子商务网站建设期末试题答案05关键词是什么意思
  • 能不能自己做视频网站图片外链生成
  • 花都网站建设无锡seo网络推广
  • 电子 东莞网站建设公司网站设计需要多少钱
  • 网站的首页设计方案青岛网站seo服务
  • 电池网站建设 中企动力专业网站优化培训
  • 信息技术课做网站找关键词