首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往
您找到你想要的搜索结果了吗?
是的
没有找到

「数字体验」Liferay数字体验平台(DXP)的好处

随着DXP版本的发布,Liferay在它的基础产品上做了一个范式转换。通过这个版本,Liferay现在已经定义了一个路线图,以应对未来的技术趋势,比如微服务、数字体验管理、更智能、更快速的构建管理。...在这篇文章中,我们将挑选一些Liferay DXP的新功能,并对它们进行详细的探讨。 模块化: 这实际上意味着Liferay的每个模块(特性)现在都是联合的,可以从核心Liferay安装中分离出来。...更快的页面刷新 Liferay DXP使用最先进的Senna.js单页应用程序(SPA)引擎,可以极大地优化任何网站的性能。SPA与Gmail, Facebook等使用的是相同的技术。...有了这些选择,组织和开发人员可以在Liferay开始开发时选择方便的构建工具 优点: Liferay现在面向更大的社区开放,社区中有精通不同构建工具的开发人员。...Liferay现在允许您访问自定义Java库并在实现中使用它们。 好处: 代码的重用是关键的优势,因为如果不想的话,不需要将逻辑重构为Liferay

1.6K10

通过代码缓存加速 Node.js 的启动

通过 V8 第一次执行 JS 的时候,V8 需要即时进行解析和编译 JS代码,这个是需要一定时间的,代码缓存可以把这个过程的一些信息保存下来,下次执行的时候,通过这个缓存的信息就可以加速 JS 代码的执行...本文介绍在 Node.js 里如何利用代码缓存技术加速 Node.js 的启动。 首先看一下 Node.js 的编译配置。...这是 Node.js 做的第一个优化,接下来看代码缓存,因为代码缓存是在这个基础上实现的。首先看一下编译配置。...初始化完毕后,后面加载原生 JS 模块时,Node.js 再次执行 LookupAndCompile,就个时候就有代码缓存了。...当开启代码缓存时,我的电脑上 Node.js 启动时间大概为 40 毫秒,当去掉代码缓存的逻辑重新编译后,Node.js 的启动时间大概是 60 毫秒,速度有了很大的提升。

2K30

js的动态加载、缓存、更新以及复用(三)

总体思路 1、  建立一个js服务,该服务实现通用js文件的加载、依赖、缓存、更新以及复用。 2、  各个项目如果使用通用js,可(bi)以(xu)使用js服务实现加载。...1、  在页面里使用引用boot.js。这个主要是一个引导程序,用他来加载其他的js。 2、  然后看看是否有缓存信息。 3、  如果有缓存信息,那么说明这是子页。...4、  如果没有缓存信息,说明这是top页面,需要加载另一个js(bootLoad.js)。这个是真正干活的文件。这里放在配置信息和加载css、加载js的函数。然后开始各种加载。   ...8、 为啥要缓存?     不想每个页面都去加载固定不变的东东,比如配置信息和通用函数。虽然浏览器在加载的时候会启用缓存,但是不太好控制。客户端也可以强制不用缓存。...另外用缓存,速度会更快一些,比较不用浏览器去做各种判断了。虽然判断的时间一般也挺快的。 9、 如何实现更新?     用版本号,设定一个版本号,有更新了,改一下这个版本号就可以了。

6.3K90

JS 利用高阶函数实现函数缓存(备忘模式)

高阶函数实现缓存(备忘模式) 比如有个函数: var add = function(a) { return a + 1; } 每次运行add(1)的时候都会输出2,但是输入1每次还是会计算一下1...+1,如果是开销很大的操作的话就比较消耗性能了,这里其实可以对这个计算进行一次缓存。...所以这里可以利用高阶函数的思想来实现一个简单的缓存,我可以在函数内部用一个对象存储输入的参数,如果下次再输入相同的参数,那就比较一下对象的属性,把值从这个对象里面取出来。...抽象工厂模式 JS 工厂模式 JS 建造者模式 JS 原型模式 JS 单例模式 JS 回调模式 JS 外观模式 JS 适配器模式 JS 利用高阶函数实现函数缓存(备忘模式) JS 状态模式 JS 桥接模式...JS 观察者模式 网上的帖子大多深浅不一,甚至有些前后矛盾,在下的文章都是学习过程中的总结,如果发现错误,欢迎留言指出~ 参考: P78

2.5K30

localStorage的黑科技-js和css缓存机制

其实根本就不止一个js文件。 ? 脑袋里灵光一闪,不会是用localStorage做了缓存吧?!赶紧看了下localStronge,还真是。。。。 ?...虽然pc端的协商缓存(304)很快,但手机端因为网络原因,协商缓存的效果就没pc端那么好了。而且,手机会经常清除本地缓存,所以文件缓存的时间也不会很长。  ...如果value值与配置信息一致,则使用缓存。否则,重新发起请求加载。 4.2 脚手架 可以看出,微信使用的是自己开发的脚手架moon.js,在这个网页中的实际文件名是moon32ebc4.js。  ...我在一个js缓存代码中,插入alert("hehe");,看页面刷新的时候,是否会出现该弹窗,来验证是否存在攻击漏洞。 ? 刷新页面后,结果如下图: ? 可以看出,微信也没有解决这类问题。...移动端可以做LS缓存。PC端做LS缓存,起到的优化作用不大。 六、番外 有兴趣的童鞋,还可以看看知乎上大神们的讨论,静态资源(JS/CSS)存储在localStorage有什么缺点?

4.3K20

JS】625- Axios 如何缓存请求数据?

接下来,阿宝哥将从如何设计缓存开始,带大家一起来开发缓存请求数据的功能。...了解完缓存的作用之后,我们来设计缓存的 API: get(key):从缓存中获取指定 key 对应的值; delete(key):从缓存中删除指定 key 对应的值; clear():清空已缓存的数据;...二、如何增强默认适配器 Axios 引入了适配器,使得它可以同时支持浏览器和 Node.js 环境。...对于浏览器环境来说,它通过封装 XMLHttpRequest API 来发送 HTTP 请求,而对于 Node.js 环境来说,它通过封装 Node.js 内置的 http 和 https 模块来发送...了解完 Axios 完整请求的流程之后,我们再来看一下 Axios 内置的 xhrAdapter 适配器,它被定义在 lib/adapters/xhr.js 文件中: // lib/adapters/xhr.js

3.9K30

逃逸安全的模板沙箱(一)——FreeMarker(上)

笔者前期主要是对 Liferay 的 FreeMarker 引擎进行了调试分析,故本文先以 FreeMarker 为例,梳理该模板引擎 SSTI 漏洞的前世今生,同时叙述自己的 Liferay FreeMarker...SSTI 漏洞踩坑历程及对 Liferay 安全机制的分析。...可以看出这是Liferay赋予模板沙箱的主要安全机制。 可以看到,重点在于如何找到暴露出的对象,其次思考如何利用这些对象绕过Liferay的安全机制。 我们在编辑模板时,会看到一个代码提示框。...然而 Liferay 的安全机制并没有这么简单,继续往下看。...至此,利用思路在 Liferay 的安全机制下全部惨败。Liferay 健全的黑白名单机制,从根源上限制了大多数攻击思路的利用,可谓是“攻不破”的铜墙铁壁。

2.1K20

Js篇-面试题6-聊一下强缓存与协商缓存

缓存的时间、缓存类型都由服务端控制 浏览器第一次请求时 ? 浏览器后续在进行请求时 ?...从上图可以知道,浏览器缓存包括两种类型,即强缓存(本地缓存)和协商缓存,浏览器在第一次请求发生后,再次请求时 浏览器在请求某一资源时,会先获取该资源缓存的header信息,判断是否命中强缓存(cache-control...header信息来比对结果是否协商缓存命中,若命中,则服务器返回新的响应header信息更新缓存中的对应header信息,但是并不返回资源内容,它会告知浏览器可以直接从缓存获取,否则返回最新的资源内容...强缓存与协商缓存的区别,如下所示 类型 获取资源形式 状态码 强缓存缓存取 200 协商缓存缓存取 304 强缓存相关的header字段 强缓存是直接从缓存中获取资源而不经过服务器,与强缓存相关的...的优先级高于expires 协商缓存相关的 header 字段 协商缓存都是由服务器来确定缓存资源是否可用的,所以客户端与服务器端需要某种标识来进行通信,从而让服务器判断请求资源是否可以缓存访问,这主要涉及到下面两组

1.5K10
领券