翻译的两级缓存说明
为了使用户有更好的体验,我们在v2版本时便加入了两级缓存机制。
- 一级缓存:缓存于浏览器。用户翻译过一次,那么浏览器就会进行缓存相应的翻译句子。当用户刷新页面时,将不会再从后端接口来取翻译结果,而是直接从浏览器本身的缓存中进行识别进行翻译。极大提高用户体验,使网页翻译无需在有缓冲等待。
- 二级缓存:缓存于服务器。翻译过一次的,都会在服务端进行缓存。下次当有翻译请求时,如果要翻译的内容跟要翻译的语种相同,那么将直接从服务端缓存返回响应,而不需要再通过第三方翻译平台来进行翻译,从而极大降低了在第三方翻译平台的翻译字数。
注意,当前缓存的依旧,是一个翻译请求中所有的文本能完全匹配,才会走缓存。如果你网页是静态网页,翻译的文本本身并不会变,那就会走缓存。如果你网页中有动态文本,比如你的是论坛,会显示最新用户发帖跟最新评论,这个是每次打开网页时它都会变的,所以就会导致翻译时文本每次都是不同的,那这样就不会匹配到缓存,而是进入了第三方翻译接口进行翻译。当然这个翻译因为有了一级缓存的存在,浏览器本身就进行了识别,在请求过来的也只是这个有变化的文本,也就是上面所提的用户发帖跟最新评论,只是这些变动的,在浏览器一级缓存中并没有被翻译过的句子,才会经过第三方翻译接口进行翻译。实际翻译的字数也不多,只是那几句有变化的句子而已。
因为有了这两级缓存的存在,使用户体验,对于翻译速度方面,相对于V1版本,提高了数倍,对后端服务器性能方面,减轻了很多,对第三方翻译接口的翻译字数消耗,降低了超过98%!