SAP CRM Fiori采用了这种机制。html
看一个具体的例子来理解。假设我用用户名Jerry选中了这个ID为3456的Opportunity,点击Edit按钮以后:阿里云
会触发一个读操做发到后台:spa
后台响应这个读请求,而且在响应的头部字段ETAG里写入了对应的值。htm
我有几张阿里云幸运券分享给你,用券购买或者升级阿里云相应产品会有特惠惊喜哦!把想要买的产品的幸运券都领走吧!快下手,立刻就要抢光了。get
这个26AE结尾的ETAG的值能够由应用程序采起不一样的逻辑计算,能够直接采用请求节点对应的最后修改时间戳(Last Changed Timestamp), 例以下面这段ABAP代码:产品
也能够基于数据的完整内容计算一个HASH值出来做为ETAG返回给Fiori UI:it
如今我用另外一个用户,对同一个Opportunity作了修改,成功保存。而后再回到用户Jerry的这个编辑窗口,此时Jerry根本不知道该Opportunity已经被另外一个用户修改了。Jerry修改了Opportunity的Name字段,点击保存按钮。io
收到这个提示信息。ast
从Chrome Development Tool里能观察到,当Jerry点击了保存按钮后,发送到后台的请求的头部包含了一个If-Match字段,这个字段的值就是Jerry第一次点击编辑按钮时,后台返回给Jerry的26AE结尾的ETAG字段。后台