博客園是個很好的學習場地,但是我感覺博客園本身也很值得學習.總喜歡看看博客園的一些功能,想想怎么實現,可能我的理解比較單純,但是也是一種進步吧。
我感覺先從個人首頁到博客園首頁進行學習,下面例子以本人博客園測試。本人經驗一般,很多地方看不明白,還請指教。
1:個人首頁地址
個人首頁的地址我試出來是http://www.survivalescaperooms.com/xiaoshuai1992/default.html,可是我們的連接上顯示是http://www.survivalescaperooms.com/xiaoshuai1992/,后面的default.html被省略掉了,如果按照我開發小網站,這個default.html不能被省略,但是發布站點的首頁可以省略,我不知道這個地方是怎么做的,是每個人一個站點,還是用程序故意省略的。
要我開發小型一點網站,肯定是一個大站點,按照用戶名稱為每個人建立文件夾,文件夾下存放自己發布的文章。
2:單篇博客
(1)頁面生成與皮膚
還是先從簡單的看起,每一篇文章都是一個靜態頁面。
點開博客園后臺的添加文章,輸入內容后會根據輸入內容+固定模板生成html進行保存??墒敲總€人都會選擇不同的皮膚,這些皮膚是怎么生成的呢?隨便點開一篇文章,看到樣式表的地址為http://common.VEVb.com/Skins/nature/style.CSS?id=20140415,中間的nature就是我的皮膚名稱,模板html中div名稱和樣式名稱一樣,每個人選的皮膚名稱不一樣,皮膚下面的樣式名稱一樣,只是內容不一樣。
但是有一點我很想知道,如果我改了皮膚,這時難道是把所有的博客的css地址換掉還是直接在模板中用js控制進入頁面時讀取用戶設置的樣式。我測試如果我修改了皮膚,進入馬上就已經換皮膚了,如果批次去替換,速度應該沒那么快,也不方便。但是如果是用js替換,我查看源碼又查詢不到,而且文章的js好像是有加密的,地址為http://www.survivalescaperooms.com/bundles/blog-common.js?v=15gzXd7pJ_PNpSlGpVykf0EBaNg79HWL7oD5vVw0NGA1
(2)模板編輯
進入后臺,設置里面有編輯html,標題,子標題,我認為這些是在編輯模板,因為這些都會顯示在每個頁面上,那這樣每個人都需要有一個模板,可能是新建帳號的時候就會把一個母模板copy到新建用戶的特定文件夾下,然后我們每次修改更改自己下面的模板頁面就可以了,其實這樣換皮膚也比較簡單。但是這樣以前發布的文章皮膚不會換,所以有我上面的推斷為js切換。
(3)公告欄和分類
查看源代碼可以看到,在公告欄地方有一個js方法loadBlogNews();,這個估計就是調用的Ajax進行顯示了
日歷:loadBlogDefaultCalendar();
分類排行等:loadBlogSideColumn();
(4):上一篇和下一篇
這個是在id 為post_next_PRev的div里面,這個我想也是ajax生成的。
當然下面的評論和廣告都是ajax更新的了。
(5)更新
關于更新,我的猜想是先刪除后新增了,因為已經生成的頁面已經沒有替換的地方了?;蛘哂胐iv id來判斷,但是這樣麻煩多了,反正我喜歡干先刪除,再新增的事情。
3:分類
(1):自定類別
比如我點到我自己的asp.net ,看到地址為
http://www.survivalescaperooms.com/xiaoshuai1992/category/523390.html
523390這個編號是自動生成的,所以我猜想,我們新建類別時其實已經生成了這個地址和html,我們在發布文章選擇了這個類別,就會把我們剛新增的文章寫進去。當然按照我上面的原則,可能是先刪除,再把所有的重新查詢,拼為html。其實這個也需要這樣做,不然刪除就不會更新上去了。
(2)隨筆檔案
我找到我 2013/10 月的檔,地址為
http://www.survivalescaperooms.com/xiaoshuai1992/archive/2013/10.html
這個類別估計就是博客園做的幕后工作了,我們在發布文章的時候自動更新的,也是類似上面類別的操作。
我改變我2013年10月的一篇文章,發現他還在10月中,說明數據庫里面是有個創建時間和更新時間的,文章更新時,當然是取創建時間為那個月的進行更新。
4:個人首頁補充
看到上面的分類等,我再看看首頁,首頁也是要生成的吧,我們勾選發布在個人首頁后,就會顯示在首頁,然后按照時間排序,把最新的一筆內容完全顯示出來,下面的就用個方法把html轉為純文字,取個前200個字就可以實現了。
這樣我不禁想了下,那我們發布和修改一篇文章,首先要更新自己的,勾選了分類還要更新分類,博客園后臺還要更新按照月分類,還要更新首頁,這個更新的還是比較多的了。
感覺也寫的差不多了,首頁的ajax分頁,排序啊,推薦啊其實還是比較繁瑣的,各種欄位,各種排序,各種分類。
新聞熱點
疑難解答