一丶利用GridFS實現頁面的靜態化

2021-09-25 16:40:27 字數 2353 閱讀 2617

resttemplate的詳解:responseentity繼承了httpentity. 封裝了返回的響應資訊,包括 響應狀態,響應頭 和 響應體.

freemaker的靜態化:模板+資料模型=輸出,gridfs是mongodb提供的用於持久化儲存檔案的模組。

gridfs訪問檔案的介紹:

存檔案:當把乙個檔案儲存到gridfs時,如果檔案大於chunksize (每個chunk塊大小為256kb),會先將檔案按照chunk的大小分割成多個chunk塊,最終將chunk塊的資訊儲存在fs.chunks集合的多個文件中。然後將檔案資訊儲存在fs.files集合的唯一乙份文件中。其中fs.chunks集合中多個文件中的file_id欄位對應fs.files集中文件」_id」字段。

取檔案:讀檔案時,先根據查詢條件在files集合中找到對應的文件,同時得到「_id」字段,再根據「_id」在chunks集合中查詢所有「files_id」等於「_id」的文件。最後根據「n」字段順序讀取chunk的「data」字段資料,還原檔案。

1.靜態化程式遠端請求dataurl獲取資料模型。

2. 靜態化程式獲取頁面的模板資訊

3. 執行頁面靜態化

//獲取頁面模型資料資訊

private map getmodelbypgaeid

(string pageid)

string dataurl = cmspage.

getdataurl()

;if(stringutils.

isblank

(dataurl)

) responseentity

forentity = resttemplate.

getforentity

(dataurl, map.

class);

map body = forentity.

getbody()

;return body;

}

*

@author mr.wu

*@date

2019/7

/2921:

15*@version

1.0**/

@configuration

public

class

mongoconfig")

string db;

@bean

public gridfsbucket getgridfsbucket

(mongoclient mongoclient)

}

ioutils中的tostring():將輸入流或陣列中的內容轉換為字串。

從gridfs中取檔案。

獲取流從流中取資料。

//獲取頁面模板

private string gettemplatebypageid

(string pageid)

//獲取頁面的模板id

string templateid = cmspage.

gettemplateid()

;if(stringutils.

isblank

(templateid)

)//查詢模板資訊

optional

optional =

this

.cmstemplaterepository.

findbyid

(templateid);if

(optional.

ispresent()

)catch

(ioexception e)

}return null;

}}

//執行靜態化

private string generatehtml

(string templatecontent,map model)

catch

(exception e)

return null;

}

public string getpagehtml

(string pageid)

//獲取頁面的模板資訊

string template =

this

.gettemplatebypageid

(pageid);if

(template==null)

//執行靜態化

//執行靜態化

string html =

generatehtml

(template, model)

;return html;

}

vue頁面利用keep alive實現頁面快速快取

需求 vue切換頁面時,保留原頁面表單資料,實現快速快取,便於下次利用 方法 基於vue的內建元件keep alive 文件 官方說明 包裹動態元件時,會快取不活動的元件例項,而不是銷毀它們。和 相似,是乙個抽象元件 它自身不會渲染乙個 dom 元素,也不會出現在父元件鏈中。當元件在 內被切換,它的...

利用selenium獲取動態頁面的html資料

selenium呼叫瀏覽器獲取動態html值,再呼叫其api,可以很方面獲取動態資料。經測試,確實簡單易用,至於效率方面就沒細究了。參考 向原作者致敬 前言 我看其他文章中說到設定環境變數path,還提及selenium server和selenium rc,我這篇文章沒那麼複雜,沒有設定path,...

利用iframe進行父頁面和子頁面的通訊

父頁面parent.html 父頁面元素 呼叫子頁面方法 獲取子頁面元素 呼叫子頁面child1.html的方法,並獲取其元素 function parentsay function getchilditem function getchilditem 子頁面1,child1.html 子頁面1的元...