成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

Ajax模式之緩存控制器模式

開(kāi)發(fā) 前端 后端
Ajax模式提出了一種不同視角的緩存控制器模式,它是采用客戶(hù)端做緩存的方式,本文介紹了這種模式的實(shí)現(xiàn)和效果。

緩存控制器模式出自《Ajax patterns and best practice》,這個(gè)Ajax模式非常具備實(shí)際意義,為客戶(hù)端的緩存實(shí)現(xiàn)做出了指導(dǎo),和以往在使用傳統(tǒng)B/S結(jié)構(gòu)進(jìn)行開(kāi)發(fā)時(shí)所做緩存的思路有一個(gè)改進(jìn)點(diǎn).

在傳統(tǒng)的B/S結(jié)構(gòu)的應(yīng)用中,為了提升系統(tǒng)的響應(yīng)效率,經(jīng)常會(huì)使用頁(yè)面分塊的緩存方式,在具體的實(shí)現(xiàn)上象經(jīng)常采用oscache這樣的東西來(lái)對(duì)頁(yè)面的塊進(jìn)行緩存,將緩存的內(nèi)容放入服務(wù)器端,當(dāng)客戶(hù)端再次請(qǐng)求時(shí)則可以直接從緩存中獲取生成的頁(yè)面塊,而無(wú)需經(jīng)過(guò)后臺(tái)的一堆的處理,這種緩存方式對(duì)于系統(tǒng)效率的提升非常的明顯,基本上達(dá)到了生成靜態(tài)頁(yè)面的效果。

而在《Ajax patterns and best practice》書(shū)中,提出了一種不同視角的緩存控制器模式,它是采用客戶(hù)端做緩存的方式,當(dāng)然,服務(wù)器端也同時(shí)做,這樣的視角比較獨(dú)特,以前還真沒(méi)考慮過(guò)客戶(hù)端來(lái)做緩存,先來(lái)說(shuō)說(shuō)采用了這種模式后的效果再來(lái)看看怎么實(shí)現(xiàn)吧:

效果

采用了Ajax模式中的緩存控制器模式后,客戶(hù)端提交請(qǐng)求,服務(wù)器端返回相應(yīng)的數(shù)據(jù)或頁(yè)面片段,當(dāng)客戶(hù)端再次提交請(qǐng)求時(shí),如服務(wù)器端此部分的數(shù)據(jù)或頁(yè)面片段沒(méi)發(fā)生變化,那么客戶(hù)端將直接從客戶(hù)端的緩存中獲取數(shù)據(jù)或頁(yè)面片段。

這樣看來(lái)和傳統(tǒng)的B/S結(jié)構(gòu)緩存所起到的效果有什么不同的地方呢?就在于客戶(hù)端也做了緩存,這就使得在數(shù)據(jù)沒(méi)有修改的情況下可以減少流量的產(chǎn)生,而在傳統(tǒng)的B/S結(jié)構(gòu)的緩存策略中只是提升了服務(wù)器端的響應(yīng),但流量仍然是同樣的。

實(shí)現(xiàn)

熟悉緩存策略實(shí)現(xiàn)方法的同學(xué)們?cè)谥肋@種效果后基本上也就能想到怎么去實(shí)現(xiàn)了,只是以前可能沒(méi)有這么考慮過(guò)。

實(shí)現(xiàn)上首先在客戶(hù)端建立對(duì)應(yīng)key的緩存方式,也是類(lèi)似Map的方式,當(dāng)客戶(hù)端發(fā)起請(qǐng)求時(shí),將key也發(fā)送給服務(wù)器端,服務(wù)器端根據(jù)這個(gè)key值來(lái)判斷是否需要重新獲取數(shù)據(jù)或頁(yè)面片段(和token方式類(lèi)似),如需要,服務(wù)器端則返回?cái)?shù)據(jù)或頁(yè)面片段,如不需要,服務(wù)器端則直接返回一個(gè)不同的狀態(tài)碼,客戶(hù)端根據(jù)服務(wù)器端返回的狀態(tài)碼來(lái)決定是從緩存中獲取,還是獲取服務(wù)器端返回的數(shù)據(jù)或頁(yè)面片段,同時(shí)更新key值以及將數(shù)據(jù)或頁(yè)面片段放入緩存中。

按照這樣的實(shí)現(xiàn)方式,如果js也有一個(gè)和oscache這些類(lèi)似的緩存框架就好了....

來(lái)看看書(shū)中關(guān)于實(shí)現(xiàn)緩存控制器模式模型的一段描述:

"一種更好的方法是使用HTTP驗(yàn)證模型(HTTP Validation model)。該模型在每次發(fā)送響應(yīng)時(shí)都會(huì)添加一個(gè)標(biāo)簽(ticket)來(lái)保證數(shù)據(jù)的唯一性。如果客戶(hù)端想要再次下載內(nèi)容,它將最后下載的標(biāo)簽發(fā)送給服務(wù)器。服務(wù)器端比較發(fā)送來(lái)的這個(gè)標(biāo)簽和它當(dāng)前持有的標(biāo)簽是否一致。如果標(biāo)簽是一致的,服務(wù)器端就發(fā)送一個(gè)HTTP 304代碼,指示出請(qǐng)求的內(nèi)容沒(méi)有發(fā)生變化。在這種情況下,客戶(hù)端能夠從緩存中獲取舊的內(nèi)容,并將它作為最近和最好的內(nèi)容展現(xiàn)給用戶(hù)。HTTP驗(yàn)證模型仍然需要一個(gè)HTTP請(qǐng)求,但是它不會(huì)帶來(lái)重復(fù)生成和發(fā)送內(nèi)容的代價(jià)。"

以上文字摘自即將出版的《Ajax模式和最佳實(shí)踐》。(也就是《Ajax patterns and best practice》的中文版)

以上是我個(gè)人看了緩存控制器模式后對(duì)于這種Ajax模式的想法,和書(shū)中表達(dá)方法有所不同,書(shū)中對(duì)于此種模式講解更為的深入也更為的全面,能夠想深入了解這種模式的話,可以去看看英文版,或者等中文版出版。

 

【編輯推薦】

  1. AJAX推送與拉取方式的比較
  2. 詳談基于JSON的高級(jí)AJAX開(kāi)發(fā)技術(shù)
  3. 7個(gè)免費(fèi)強(qiáng)大的Ajax文件管理器
  4. 使用ASP.NET AJAX調(diào)用WCF服務(wù)項(xiàng)模板
  5. Grails Ajax富客戶(hù)端插件橫向大比拼
責(zé)任編輯:佚名 來(lái)源: JavaEye
相關(guān)推薦

2011-07-07 16:14:37

Cocoa MVC 模型

2023-09-04 13:14:00

裝飾器設(shè)計(jì)模式

2009-12-01 18:29:56

PHP緩存控制器

2011-07-12 09:29:10

主域控制器備份域控制器

2021-06-22 15:27:13

設(shè)計(jì)模式迭代器模式Java

2023-12-13 13:28:16

裝飾器模式Python設(shè)計(jì)模式

2011-07-13 10:29:44

域控制器

2013-12-19 09:32:01

SDN南向網(wǎng)絡(luò)控制

2010-04-21 08:38:18

解釋器模式PHP設(shè)計(jì)模式

2010-04-29 08:53:11

PHP迭代器模式

2017-05-05 10:13:03

應(yīng)用級(jí)緩存緩存代碼

2011-07-13 13:43:30

2011-07-14 10:28:54

額外域控制器

2020-08-21 07:23:50

工廠模式設(shè)計(jì)

2015-08-07 15:28:46

選取城市控制器源碼

2023-08-13 18:31:45

SDN控制器

2013-12-19 10:06:44

SDN控制器東西向擴(kuò)展

2021-06-09 08:53:34

設(shè)計(jì)模式策略模式工廠模式

2012-02-29 09:41:14

JavaScript

2013-12-19 09:35:49

SDN控制器北向
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)

主站蜘蛛池模板: 亚洲欧美在线一区 | 中文字幕一区二区三 | 自拍偷拍中文字幕 | 欧美精品久久久久久久久老牛影院 | 美女福利视频网站 | 一区欧美 | 伊人久久一区二区 | 在线免费毛片 | 久热国产精品视频 | 91精品国产高清一区二区三区 | 丝袜美腿一区二区三区动态图 | 国产精品久久久久久久久久三级 | 日本五月婷婷 | 91精品久久久久久久久中文字幕 | 黄色在线 | 久久久久久国模大尺度人体 | 国产日韩一区二区三免费高清 | 日韩一区二区三区在线 | 国产一区精品 | 视频一区 国产精品 | 久久久久一区二区三区 | 欧美天堂 | 91九色网站 | 天天色官网 | 狠狠爱免费视频 | 成人在线视频看看 | 亚洲视频一区 | h视频免费观看 | 日韩精品一区二区三区中文字幕 | 超碰人人91 | 久久精品毛片 | 西西裸体做爰视频 | 天天夜天天操 | 国产一区二区三区亚洲 | 精品国产一二三区 | 国产黄色在线 | 视频一二区 | 亚洲精品电影网在线观看 | 特黄色一级毛片 | 国产一级一级毛片 | 九九热在线观看视频 |