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

天津去山西高铁做哪个网站国内网页设计网站

天津去山西高铁做哪个网站,国内网页设计网站,微信公众号功能,学做招投标的网站您可能实际上并不需要所有这些#xff1b;通常有一个更简单的方法。如果有意使用#xff0c;此处显示的技术可能仍然对您的工具集有用。 为了保持一致性#xff0c;我们希望我们的自动加载器也成为一个自定义元素——这也意味着我们可以通过 HTML 轻松配置它。但首先#…您可能实际上并不需要所有这些通常有一个更简单的方法。如果有意使用此处显示的技术可能仍然对您的工具集有用。 为了保持一致性我们希望我们的自动加载器也成为一个自定义元素——这也意味着我们可以通过 HTML 轻松配置它。但首先让我们逐步确定那些未解决的自定义元素 span stylebackground-color:#1b1b1bspan stylecolor:#f5d67bcode classlanguage-javascriptspan stylecolor:#83ba52class/span AutoLoader span stylecolor:#83ba52extends/span HTMLElement span stylecolor:#72e0d1{/spanconnectedCallbackspan stylecolor:#72e0d1(/spanspan stylecolor:#72e0d1)/span span stylecolor:#72e0d1{/spanspan stylecolor:#83ba52let/span scope span stylecolor:#aa7ee1/span span stylecolor:#83ba52this/spanspan stylecolor:#72e0d1./spanparentNodespan stylecolor:#72e0d1;/spanspan stylecolor:#83ba52this/spanspan stylecolor:#72e0d1./spandiscoverspan stylecolor:#72e0d1(/spanscopespan stylecolor:#72e0d1)/spanspan stylecolor:#72e0d1;/spanspan stylecolor:#72e0d1}/span span stylecolor:#72e0d1}/span customElementsspan stylecolor:#72e0d1./spandefinespan stylecolor:#72e0d1(/spanspan stylecolor:#83ba52ce-autoloader/spanspan stylecolor:#72e0d1,/span AutoLoaderspan stylecolor:#72e0d1)/spanspan stylecolor:#72e0d1;/span/code/span/span 假设我们已经预先加载了这个模块使用async是理想的我们可以将一个ce-autoloader元素放入body我们的文档中。这将立即启动 的所有子元素的发现过程body这些子元素现在构成了我们的根元素。ce-autoloader我们可以通过添加到相应的容器元素来将发现限制在文档的子树中——实际上我们甚至可以为不同的子树设置多个实例。 当然我们仍然必须实现该discover方法作为上面类的一部分AutoLoader span stylebackground-color:#1b1b1bspan stylecolor:#f5d67bcode classlanguage-javascriptdiscoverspan stylecolor:#72e0d1(/spanscopespan stylecolor:#72e0d1)/span span stylecolor:#72e0d1{/spanspan stylecolor:#83ba52let/span candidates span stylecolor:#aa7ee1/span span stylecolor:#72e0d1[/spanscopespan stylecolor:#72e0d1,/span span stylecolor:#aa7ee1.../spanscopespan stylecolor:#72e0d1./spanquerySelectorAllspan stylecolor:#72e0d1(/spanspan stylecolor:#83ba52*/spanspan stylecolor:#72e0d1)/spanspan stylecolor:#72e0d1]/spanspan stylecolor:#72e0d1;/spanspan stylecolor:#83ba52for/spanspan stylecolor:#72e0d1(/spanspan stylecolor:#83ba52let/span el span stylecolor:#83ba52of/span candidatesspan stylecolor:#72e0d1)/span span stylecolor:#72e0d1{/spanspan stylecolor:#83ba52let/span tag span stylecolor:#aa7ee1/span elspan stylecolor:#72e0d1./spanlocalNamespan stylecolor:#72e0d1;/spanspan stylecolor:#83ba52if/spanspan stylecolor:#72e0d1(/spantagspan stylecolor:#72e0d1./spanincludesspan stylecolor:#72e0d1(/spanspan stylecolor:#83ba52-/spanspan stylecolor:#72e0d1)/span span stylecolor:#aa7ee1/span span stylecolor:#aa7ee1!/spancustomElementsspan stylecolor:#72e0d1./spanspan stylecolor:#83ba52get/spanspan stylecolor:#72e0d1(/spantagspan stylecolor:#72e0d1)/spanspan stylecolor:#72e0d1)/span span stylecolor:#72e0d1{/spanspan stylecolor:#83ba52this/spanspan stylecolor:#72e0d1./spanloadspan stylecolor:#72e0d1(/spantagspan stylecolor:#72e0d1)/spanspan stylecolor:#72e0d1;/spanspan stylecolor:#72e0d1}/spanspan stylecolor:#72e0d1}/span span stylecolor:#72e0d1}/span/code/span/span 在这里我们检查我们的根元素以及每个后代 ( *)。如果它是一个自定义元素——如带连字符的标签所示——但尚未升级我们将尝试加载相应的定义。以这种方式查询 DOM 可能代价高昂所以我们应该小心一点。我们可以通过推迟这项工作来减轻主线程上的负载 span stylebackground-color:#1b1b1bspan stylecolor:#f5d67bcode classlanguage-javascriptconnectedCallbackspan stylecolor:#72e0d1(/spanspan stylecolor:#72e0d1)/span span stylecolor:#72e0d1{/spanspan stylecolor:#83ba52let/span scope span stylecolor:#aa7ee1/span span stylecolor:#83ba52this/spanspan stylecolor:#72e0d1./spanparentNodespan stylecolor:#72e0d1;/spanrequestIdleCallbackspan stylecolor:#72e0d1(/spanspan stylecolor:#72e0d1(/spanspan stylecolor:#72e0d1)/span span stylecolor:#aa7ee1/span span stylecolor:#72e0d1{/spanspan stylecolor:#83ba52this/spanspan stylecolor:#72e0d1./spandiscoverspan stylecolor:#72e0d1(/spanscopespan stylecolor:#72e0d1)/spanspan stylecolor:#72e0d1;/spanspan stylecolor:#72e0d1}/spanspan stylecolor:#72e0d1)/spanspan stylecolor:#72e0d1;/span span stylecolor:#72e0d1}/span/code/span/span requestIdleCallback还没有得到普遍支持但我们可以使用requestAnimationFrame作为后备 span stylebackground-color:#1b1b1bspan stylecolor:#f5d67bcode classlanguage-javascriptspan stylecolor:#83ba52let/span defer span stylecolor:#aa7ee1/span windowspan stylecolor:#72e0d1./spanrequestIdleCallback span stylecolor:#aa7ee1||/span requestAnimationFramespan stylecolor:#72e0d1;/spanspan stylecolor:#83ba52class/span AutoLoader span stylecolor:#83ba52extends/span HTMLElement span stylecolor:#72e0d1{/spanconnectedCallbackspan stylecolor:#72e0d1(/spanspan stylecolor:#72e0d1)/span span stylecolor:#72e0d1{/spanspan stylecolor:#83ba52let/span scope span stylecolor:#aa7ee1/span span stylecolor:#83ba52this/spanspan stylecolor:#72e0d1./spanparentNodespan stylecolor:#72e0d1;/spandeferspan stylecolor:#72e0d1(/spanspan stylecolor:#72e0d1(/spanspan stylecolor:#72e0d1)/span span stylecolor:#aa7ee1/span span stylecolor:#72e0d1{/spanspan stylecolor:#83ba52this/spanspan stylecolor:#72e0d1./spandiscoverspan stylecolor:#72e0d1(/spanscopespan stylecolor:#72e0d1)/spanspan stylecolor:#72e0d1;/spanspan stylecolor:#72e0d1}/spanspan stylecolor:#72e0d1)/spanspan stylecolor:#72e0d1;/spanspan stylecolor:#72e0d1}/spanspan stylecolor:#5e7671em// .../em/span span stylecolor:#72e0d1}/span/code/span/span 现在我们可以继续实现缺少的load方法来动态注入script元素 span stylebackground-color:#1b1b1bspan stylecolor:#f5d67bcode classlanguage-javascriptloadspan stylecolor:#72e0d1(/spantagspan stylecolor:#72e0d1)/span span stylecolor:#72e0d1{/spanspan stylecolor:#83ba52let/span el span stylecolor:#aa7ee1/span documentspan stylecolor:#72e0d1./spancreateElementspan stylecolor:#72e0d1(/spanspan stylecolor:#83ba52script/spanspan stylecolor:#72e0d1)/spanspan stylecolor:#72e0d1;/spanspan stylecolor:#83ba52let/span res span stylecolor:#aa7ee1/span span stylecolor:#83ba52new/span Promisespan stylecolor:#72e0d1(/spanspan stylecolor:#72e0d1(/spanresolvespan stylecolor:#72e0d1,/span rejectspan stylecolor:#72e0d1)/span span stylecolor:#aa7ee1/span span stylecolor:#72e0d1{/spanelspan stylecolor:#72e0d1./spanaddEventListenerspan stylecolor:#72e0d1(/spanspan stylecolor:#83ba52load/spanspan stylecolor:#72e0d1,/span ev span stylecolor:#aa7ee1/span span stylecolor:#72e0d1{/spanresolvespan stylecolor:#72e0d1(/spanspan stylecolor:#83ba52null/spanspan stylecolor:#72e0d1)/spanspan stylecolor:#72e0d1;/spanspan stylecolor:#72e0d1}/spanspan stylecolor:#72e0d1)/spanspan stylecolor:#72e0d1;/spanelspan stylecolor:#72e0d1./spanaddEventListenerspan stylecolor:#72e0d1(/spanspan stylecolor:#83ba52error/spanspan stylecolor:#72e0d1,/span ev span stylecolor:#aa7ee1/span span stylecolor:#72e0d1{/spanrejectspan stylecolor:#72e0d1(/spanspan stylecolor:#83ba52new/span Errorspan stylecolor:#72e0d1(/spanspan stylecolor:#83ba52failed to locate custom-element definition/spanspan stylecolor:#72e0d1)/spanspan stylecolor:#72e0d1)/spanspan stylecolor:#72e0d1;/spanspan stylecolor:#72e0d1}/spanspan stylecolor:#72e0d1)/spanspan stylecolor:#72e0d1;/spanspan stylecolor:#72e0d1}/spanspan stylecolor:#72e0d1)/spanspan stylecolor:#72e0d1;/spanelspan stylecolor:#72e0d1./spansrc span stylecolor:#aa7ee1/span span stylecolor:#83ba52this/spanspan stylecolor:#72e0d1./spanelementURLspan stylecolor:#72e0d1(/spantagspan stylecolor:#72e0d1)/spanspan stylecolor:#72e0d1;/spandocumentspan stylecolor:#72e0d1./spanheadspan stylecolor:#72e0d1./spanappendChildspan stylecolor:#72e0d1(/spanelspan stylecolor:#72e0d1)/spanspan stylecolor:#72e0d1;/spanspan stylecolor:#83ba52return/span resspan stylecolor:#72e0d1;/span span stylecolor:#72e0d1}/spanelementURLspan stylecolor:#72e0d1(/spantagspan stylecolor:#72e0d1)/span span stylecolor:#72e0d1{/spanspan stylecolor:#83ba52return/span span stylecolor:#83ba52/spanspan stylecolor:#72e0d1${/spanspan stylecolor:#83ba52this/spanspan stylecolor:#72e0d1./spanrootDirspan stylecolor:#72e0d1}/spanspan stylecolor:#83ba52//spanspan stylecolor:#72e0d1${/spantagspan stylecolor:#72e0d1}/spanspan stylecolor:#83ba52.js/spanspan stylecolor:#72e0d1;/span span stylecolor:#72e0d1}/span/code/span/span 请注意elementURL. 该src属性的 URL 假设有一个目录所有自定义元素定义都位于该目录中例如my-widget→ /components/my-widget.js。我们可以提出更详尽的策略但这足以满足我们的目的。将此 URL 委托给一个单独的方法允许在需要时进行特定于项目的子类化 span stylebackground-color:#1b1b1bspan stylecolor:#f5d67bcode classlanguage-javascriptspan stylecolor:#83ba52class/span FancyLoader span stylecolor:#83ba52extends/span AutoLoader span stylecolor:#72e0d1{/spanelementURLspan stylecolor:#72e0d1(/spantagspan stylecolor:#72e0d1)/span span stylecolor:#72e0d1{/spanspan stylecolor:#5e7671em// fancy logic/em/spanspan stylecolor:#72e0d1}/span span stylecolor:#72e0d1}/span/code/span/span 无论哪种方式请注意我们依赖于this.rootDir. 这就是前面提到的可配置性的用武之地。让我们添加一个相应的 getter span stylebackground-color:#1b1b1bspan stylecolor:#f5d67bcode classlanguage-javascriptspan stylecolor:#83ba52get/span rootDirspan stylecolor:#72e0d1(/spanspan stylecolor:#72e0d1)/span span stylecolor:#72e0d1{/spanspan stylecolor:#83ba52let/span uri span stylecolor:#aa7ee1/span span stylecolor:#83ba52this/spanspan stylecolor:#72e0d1./spangetAttributespan stylecolor:#72e0d1(/spanspan stylecolor:#83ba52root-dir/spanspan stylecolor:#72e0d1)/spanspan stylecolor:#72e0d1;/spanspan stylecolor:#83ba52if/spanspan stylecolor:#72e0d1(/spanspan stylecolor:#aa7ee1!/spanurispan stylecolor:#72e0d1)/span span stylecolor:#72e0d1{/spanspan stylecolor:#83ba52throw/span span stylecolor:#83ba52new/span Errorspan stylecolor:#72e0d1(/spanspan stylecolor:#83ba52cannot auto-load custom elements: missing root-dir/spanspan stylecolor:#72e0d1)/spanspan stylecolor:#72e0d1;/spanspan stylecolor:#72e0d1}/spanspan stylecolor:#83ba52if/spanspan stylecolor:#72e0d1(/spanurispan stylecolor:#72e0d1./spanendsWithspan stylecolor:#72e0d1(/spanspan stylecolor:#83ba52//spanspan stylecolor:#72e0d1)/spanspan stylecolor:#72e0d1)/span span stylecolor:#72e0d1{/span span stylecolor:#5e7671em// remove trailing slash/em/spanspan stylecolor:#83ba52return/span urispan stylecolor:#72e0d1./spansubstringspan stylecolor:#72e0d1(/spanspan stylecolor:#fc94630/spanspan stylecolor:#72e0d1,/span urispan stylecolor:#72e0d1./spanlength span stylecolor:#aa7ee1-/span span stylecolor:#fc94631/spanspan stylecolor:#72e0d1)/spanspan stylecolor:#72e0d1;/spanspan stylecolor:#72e0d1}/spanspan stylecolor:#83ba52return/span urispan stylecolor:#72e0d1;/span span stylecolor:#72e0d1}/span/code/span/span 您现在可能正在考虑observedAttributes但这并没有真正让事情变得更容易。另外root-dir在运行时进行更新似乎是我们永远不需要的。 现在我们可以——而且必须——配置我们的元素目录ce-autoloader root-dir/components. 有了这个我们的自动加载器就可以完成它的工作了。除了它只工作一次对于初始化自动加载器时已经存在的元素。我们可能还想考虑动态添加的元素。这就是MutationObserver发挥作用的地方 span stylebackground-color:#1b1b1bspan stylecolor:#f5d67bcode classlanguage-javascriptconnectedCallbackspan stylecolor:#72e0d1(/spanspan stylecolor:#72e0d1)/span span stylecolor:#72e0d1{/spanspan stylecolor:#83ba52let/span scope span stylecolor:#aa7ee1/span span stylecolor:#83ba52this/spanspan stylecolor:#72e0d1./spanparentNodespan stylecolor:#72e0d1;/spandeferspan stylecolor:#72e0d1(/spanspan stylecolor:#72e0d1(/spanspan stylecolor:#72e0d1)/span span stylecolor:#aa7ee1/span span stylecolor:#72e0d1{/spanspan stylecolor:#83ba52this/spanspan stylecolor:#72e0d1./spandiscoverspan stylecolor:#72e0d1(/spanscopespan stylecolor:#72e0d1)/spanspan stylecolor:#72e0d1;/spanspan stylecolor:#72e0d1}/spanspan stylecolor:#72e0d1)/spanspan stylecolor:#72e0d1;/spanspan stylecolor:#83ba52let/span observer span stylecolor:#aa7ee1/span span stylecolor:#83ba52this/spanspan stylecolor:#72e0d1./span_observer span stylecolor:#aa7ee1/span span stylecolor:#83ba52new/span MutationObserverspan stylecolor:#72e0d1(/spanmutations span stylecolor:#aa7ee1/span span stylecolor:#72e0d1{/spanspan stylecolor:#83ba52for/spanspan stylecolor:#72e0d1(/spanspan stylecolor:#83ba52let/span span stylecolor:#72e0d1{/span addedNodes span stylecolor:#72e0d1}/span span stylecolor:#83ba52of/span mutationsspan stylecolor:#72e0d1)/span span stylecolor:#72e0d1{/spanspan stylecolor:#83ba52for/spanspan stylecolor:#72e0d1(/spanspan stylecolor:#83ba52let/span node span stylecolor:#83ba52of/span addedNodesspan stylecolor:#72e0d1)/span span stylecolor:#72e0d1{/spandeferspan stylecolor:#72e0d1(/spanspan stylecolor:#72e0d1(/spanspan stylecolor:#72e0d1)/span span stylecolor:#aa7ee1/span span stylecolor:#72e0d1{/spanspan stylecolor:#83ba52this/spanspan stylecolor:#72e0d1./spandiscoverspan stylecolor:#72e0d1(/spannodespan stylecolor:#72e0d1)/spanspan stylecolor:#72e0d1;/spanspan stylecolor:#72e0d1}/spanspan stylecolor:#72e0d1)/spanspan stylecolor:#72e0d1;/spanspan stylecolor:#72e0d1}/spanspan stylecolor:#72e0d1}/spanspan stylecolor:#72e0d1}/spanspan stylecolor:#72e0d1)/spanspan stylecolor:#72e0d1;/spanobserverspan stylecolor:#72e0d1./spanobservespan stylecolor:#72e0d1(/spanscopespan stylecolor:#72e0d1,/span span stylecolor:#72e0d1{/span subtreespan stylecolor:#72e0d1:/span span stylecolor:#fc9463true/spanspan stylecolor:#72e0d1,/span childListspan stylecolor:#72e0d1:/span span stylecolor:#fc9463true/span span stylecolor:#72e0d1}/spanspan stylecolor:#72e0d1)/spanspan stylecolor:#72e0d1;/span span stylecolor:#72e0d1}/spandisconnectedCallbackspan stylecolor:#72e0d1(/spanspan stylecolor:#72e0d1)/span span stylecolor:#72e0d1{/spanspan stylecolor:#83ba52this/spanspan stylecolor:#72e0d1./span_observerspan stylecolor:#72e0d1./spandisconnectspan stylecolor:#72e0d1(/spanspan stylecolor:#72e0d1)/spanspan stylecolor:#72e0d1;/span span stylecolor:#72e0d1}/span/code/span/span 这样每当 DOM 中出现新元素时浏览器就会通知我们——或者更确切地说我们各自的子树——然后我们使用它来重新启动发现过程。你可能会争辩说我们在这里重新发明了自定义元素你是对的。 我们的自动装载机现在功能齐全。未来的增强可能会研究潜在的竞争条件并研究优化。但对于大多数情况来说这可能已经足够好了。
http://www.w-s-a.com/news/618227/

相关文章:

  • 阿里巴巴网官方网站温州网站建设设计
  • 传奇购买域名做网站国外网站设计 网址
  • 西安凤城二路网站建设seo网站是什么
  • 网站后台如何更换在线qq咨询代码在线种子资源网
  • 东莞网站优化制作免费中文wordpress主题下载
  • 东莞建筑设计院排名网络优化论文
  • 做牙工作网站郑州前端开发培训机构
  • 温州专业建站网站制作的管理
  • 公司网站开发策划书有没有专门做教程的网站
  • 江苏省工程建设信息网站一天赚1000块钱的游戏
  • 制作响应式网站报价品牌建设整体体系包括什么
  • 网站推广策划报告目前做win7系统最好的网站
  • 东莞网站建设咨询公江西网站建设平台
  • 什么是网站功能源码下载站
  • 石家庄制作网站的公司双柏县住房和城乡建设局网站
  • 影视vip网站建设教程ppt模板免费下载 素材红色
  • 内蒙古城乡建设部网站首页平台网站建设ppt
  • 集约化网站建设项目官方网站建设
  • 原创先锋 北京网站建设网站开发电脑内存要多少
  • 婚恋网站建设项目创业计划书网站建设 食品
  • 免费建网站代码查询做导员的网站
  • 做网站的软件电子可以看女人不易做网站
  • 学校响应式网站模板下载仙居住房和城乡建设规划局网站
  • 推广网站的方法有拍卖网站建设
  • 网站建设网站排名优化中国网站服务器哪个好
  • asp网站应用程序网站建设需要提供的资料
  • 网站开发与设计.net微信小程序设计制作
  • 怎样做网站排名优化展馆设计费取费标准一览表
  • 网站建设去哪可接单网站建设与设计大作业
  • 休闲咖啡厅网站开发目标韩国小清新网站模板