天博官网

×

天博官网(中国)有限公司官网—APP开发—网站制作—小程序开发_天博官网(中国)有限公司官网公司

0755 -
82538016
82560826
网站报价

天博官网(中国)有限公司官网公司创建统一的渲染引擎经验分享

文章编辑:网站建设 文章来源:建站方案 浏览量:次

    深圳网站建设公司创建统一的渲染引擎经验分享。网站建设公司提醒Drupal(一个基于 PHP 的内容管理系统)的前端开发者面临的最大麻烦之一是,无法在不依赖 Drupal 自身的情况下重写 Drupal 日益复杂的渲染流程,Drupal 就是通过该流程创建 HTML 标记的。我们要么被迫编写静态的 HTML 标记,在最终执行时却被忽略;要么直接使用 Drupal 创建的 HTML 标记,并在开始写样式前就要先在 CMS 天博官网建内容。
    然而把模式库和样式文档分拆之后,很多网站建设公司设计师发现自己其实创建了一个全新的基于 Twig 的渲染引擎,该引擎可以用于 Drupal 和我们自己的样式文档。向 Twig 渲染函数传递同样的 JSON 数据集和标记即服务(或者设计 API),会一直返回同样的结果。现在,我们的模式库可以安装到任何支持编译 Twig 的系统中了。如果 JSON 数据的收集和格式化是正常的,那么渲染出来的 HTML 也是完全一致的,无论 JSON 数据是通过静态文件还是复杂的 CMS 系统传递的。
    
    当然,我们的挑战在于,要知道正确格式化的数据是什么样的。每个模板接受哪些属性?这些属性的类型是字符串、数字还是布尔值?哪些属性是必需的?有没有属性对接受的参数值有限制?如何确保传递给 Twig 函数的参数是有效的,并且能够生成正确的 HTML?对这些问题的尝试解答将我们引至最伟大的发现之一: 网站建设公司创建统一的渲染引擎经验JSON 模式。
JSON模式
    简而言之,JSON 模式描述了一个数据集。具体而言,在我们的模式库中,JSON 模式描述了正确地渲染一个模板所需要的数据。它列出模板的所有变量、哪些变量是必需的、变量的数据类型,以及对变量的值的所有限制。如果我们的卡片布局有一个 theme 变量,那么对应的 JSON 模式会提示我们 theme 变量是必需的,而且取值只能是 dark 或 light 这两个字符串之一。如果我们试图忽略 theme,或者给模板递字符串 gray,那么卡片布局就会返回验证错误提示。我们可以使用 JSON 模式提示卡片布局可以包括一系列不同的组件,而且还可以通过它来验证用于渲染某个页面区域的复杂 JSON 数组,所有的验证只需要运行一次。天博官网(中国)有限公司官网公司设计师下面的代码可能包含一个有效的卡片布局,但是其中的 CTA 组件却是无效的,因为其中 type 的值不能是 tertiary:
{
 "template":"band.twig",
 "theme":"dark",
 "components":[
  {
   "template":"cta.twig",
   "type":"tertiary"
}
 ]
}
JSON 模式允许我们通过引用来描述可以放到卡片布局、组布局和特定内容块里面的 CTA 组件,因此无需复制 JSON 模式文件。而且和 Twig 一样,我们只使用单一的规范的数据源。因此,通过给不同的组件(小到按钮、大到布局)创建 JSON 模式,我们得到了非常复杂且全面的 JSON 模式文件,通过它就能够验证所有想要渲染的内容块。有了这些 JSON 模式作为武装,任何模板所需的数据,开发者一看便知,而且他们也可以在数据发送到共享 Twig 模板引擎之前,验证自己收集到的数据的有效性。这是对旧版本系统的一个重大提升,因为再也不用小心翼翼地修改输出的 HTML 标记,直到它完全符合样式文档了。他们可以自信地说,只要数据是有效的,渲染引擎就会输出正确的 HTML 标记。不幸的是,这种方案还有一个问题。
    网站建设开发者仍然肩负重担,他们要在 CMS 中为页面里的标题、图片和文本段落创建几十个所需的输入框。就算所有的输入框都创建完成,他们还要在渲染之前吃力地将这些标题、图片和文本段落映射到 JSON 数组。他们也无法重用这些输入框去收集每个模板文件的数据。每当需要收集文本、链接和 CTA 按钮所需的数据时,他们都要在 CMS 系统天博官网建更多的输入框,而且相应地也需要更多的数据库条目。但我们还是很幸运的,因为 JSON 模式还有几招没有使用。好了,天博官网(中国)有限公司官网公司本文关于“创建统一的渲染引擎经验分享”就到这里。如果您需要联系天博官网(中国)有限公司官网公司定制高端门户网站,请拨打我们网站建站技术客服电话或者在线客服。免费为您提供高端网站建设的搭建解决方案。谢谢关注,天博官网(中国)有限公司官网编辑整理。

当前文章链接:/website/jzfa/14893.html
如果您觉得案例还不错请帮忙分享:

[声明]本网转载网络媒体稿件是为了传播更多的信息,此类稿件不代表本网观点,本网不承担此类稿件侵权行为的连带责任。故此,如果您发现本网站的内容侵犯了您的版权,请您的相关内容发至此邮箱【qin@tjnxwt.com 】,我们在确认后,会立即删除,保证您的版权。

相关案例推荐