Time of Update: 2018-12-07
Field的意思是欄位,我們在展示一條資料的時候總是要展示具體的某些欄位,有時候是一條資料,有時候是個迴圈。一條資料的時候很好處理,我們把資料準備好,然後替換相關的[field]標籤就行了。當迴圈輸出的時候,其實只需要調用顯示一條資料的方法就行了。Field的標籤格式大概是這樣:[field:PostTime length=10 dateFormat="yyyy-MM-dd HH:mm"/]
Time of Update: 2018-12-07
昨天在群裡有個朋友問,如何使用資料庫的暫存資料表。問其原因,原來是他想把查詢的結果匯出excel,但是苦於查詢結果是100個裡面隨機挑出50個,所以他想把查詢結果放在暫存資料表裡,匯出的時候查詢暫存資料表。這個方法不是不可取,其實更好的辦法就是把查詢的結果DataTable,放到緩衝裡,匯出的時候直接使用就行了。然後群裡的同學們都紛紛表明如何使用緩衝。本次我們就講下.Net
Time of Update: 2018-12-07
這是一個固定長度的雙向鏈表,沒有閉合,當然是起初沒寫成閉合的。怎麼緩衝的呢? 就是比如 長度是3000,你緩衝一篇文章 就放進去一個, 如果你從裡面擷取一個A,則A被提到鏈表的頭部,再放入一個B,則B在頭部, 其他的就會靠後排。如果緩衝的數量超過的3000,再緩衝新的時候會踢掉尾部的那個。因為那個用的次數很少。public class CacheList<T> where T : class { public class Item { public
Time of Update: 2018-12-07
上一節中,我們留下了一個flyin的方法沒有介紹,這裡想單獨寫一篇html5的動畫實現。在第二節中我們實現了畫一個泡泡,並且成功的擦除了泡泡,但當時也說了別把棋盤的線給擦掉了,所以做了位移量。所以說html5 Canvas還是低級, 沒有圖層的概念,擦掉再想補回來,怎麼補? 答案就是重繪。
Time of Update: 2018-12-07
上次我們瞭解了緩衝的基本使用技能,也知道為什麼要用緩衝,但只是單單談到了緩衝的優勢的一點:就是緩衝避免的重複性的耗時操作,提高系統效能。其實,如果緩衝使用不當,會適得其反。為了避免這種情況的發生,我們更適合瞭解下緩衝的原理。雖然緩衝不僅僅是指緩衝在記憶體裡的資料,但本節還是以記憶體為主。 假如說A市有1000萬人口,我們要根據某個社會安全號碼碼,查出這個人的資料,該如何做呢? 有兩種做法: 1、把這些資料錄入資料庫,然後給 身份證
Time of Update: 2018-12-07
我們搞程式的多多少少都瞭解點演算法。總體來講,演算法是什嗎?演算法就是“時間”和“空間”的互換策略。我們常常考究一個演算法的時間複雜度或空間複雜度,如果我們有絕對足夠的時間或空間,那麼演算法就不需要了,可惜這種條件是不存在的,只是在某些情況下相對來說我們不用去考慮其中一個。今天我們討論的“緩衝”,自然就是“用空間換時間”的演算法。緩衝就是把一些資料暫時存放於某些地方,可能是記憶體,也有可能硬碟。總之,目的就是為了避免某些耗時的操作。我們常見的耗時的操作,比如資料庫的查詢、一些資料的計算結果,
Time of Update: 2018-12-07
上節主要做了動畫的實現,感覺還是比較有意思的。遊戲的效能好不好,重繪應該比較重要吧,菜鳥瞎想了下 呵呵。本節就要做對泡泡的操作,上節後面提到了點擊泡泡後泡泡要做出閃動響應,那我們我們如何獲得被點擊了哪個泡泡呢?其實Canvas也是html的一個元素而已,所以我們可以給Canvas加click事件。來查看click時滑鼠的座標,這樣就等得出點擊了map的哪個位置。我們給game增加一個click方法,當Canvas點擊時調用此方法。要實現的效果是:
Time of Update: 2018-12-07
緩衝二字,從字面上分為兩塊:“緩”與“存”。上節我們提到的緩衝原理,其實是在講的一個“存”字,如何存取。大致回顧下是key對應的hashcode,根據hashcode作為數組下標來存取,因為存在hash衝突,速度雖達不到O(1),但也是非常之快。今天就說下“緩”的策略。 緩,便意味著“暫時”的意思,過一段時間就不再存在或被替換掉了,所以我們要說的其實是緩衝的到期策略。在緩衝入門篇中,主要提到了Cache類的Insert的方法,其中的幾個變化的參數寓意著各種緩衝策略,
Time of Update: 2018-12-07
上節中講了如何尋路,在和朋友們討論時都反應有時走的不太對,繞遠路了,其實代碼主要是大方向的判斷 比如目標在右上,那應該是先右還是先上 這個並沒有做處理,如果這個做了處理,效果會更好一些,但也難免會走彎路。 貪心就是這樣,不是最優,接近最優。也希望其他的同學有意見的可以討論下。我這也只是個人想法。 既然可以走動了,那就可以判斷是否可以消除同樣顏色的行、列或斜線了。只要>=5個同樣的色球,就清除他們,並且可以繼續移動。如果不可以清除,那就再增加3個球。
Time of Update: 2018-12-07
你真的瞭解過去的自己嗎?別急著回答,先看看我的故事:
Time of Update: 2018-12-07
Time of Update: 2018-12-07
回顧之前的章節,我們大致講了下緩衝的基本概念、原理、策略和常用方法。可能會有朋友會說,訪問量小根本不需要緩衝,徒增開發的複雜度,訪問量大的話本機快取也沒意義。其實這話說的也不無道理,當然我們不能把這句話看成絕對的話,不然什麼話都成廢話了:),其實我們研究學習的任何技術都不會白學的,每種技術都有他的使用範疇,只是當我們面對新的層次時,需要改變,需要重新學習。我們之前講的每篇都非常有用,本機快取也非常有用。不過當我們面臨大的資料量和訪問量的考研時,就需要使用新的解決方案。今天就講講共用快取那些事。到
Time of Update: 2018-12-07
今天遇到了一個編碼問題,很有意思如果T1,T2,T3 都有相同的屬性,而且處理這些屬性的邏輯都一樣,但他們之間沒有關系,該怎麼辦?答案如下:namespace ConsoleApplication2 { public class T1 { public string Name { get; set; } public int Count { get; set; } } public class T2 { public string Name { get; set; }
Time of Update: 2018-12-07
乍看這題真夠唬人的,群裡看到這個題目後爭先恐後的說看法。最簡單的辦法不外乎就是遍曆每個數,然後toString() 看看裡面有多少個1,最後全部加起來,這是我們得到標準答案的辦法。群裡算上我3個人寫了3個笨方法都跑出來了,3個笨方法,呵呵 有意思,笨方法也不一樣。 程式的實現真是變幻莫測。var re = /1{1}/g;var max = 4 * 10000 * 10000;getTotal(f);getTotal(f1);getTotal(f2);function
Time of Update: 2018-12-07
查詢編譯器 (Query compiler)查詢編譯器對查詢進行 分析 和 最佳化。他將查詢翻譯成“查詢計劃(query plan)”,查詢計劃主要是在 資料上執行一系列的操作。主要分為三個部分:1、查詢分析器(query parser):將SQL分析為一顆樹結構。2、查詢前置處理器(query preprocessor):對查詢進行語義檢查,並進行某些樹結構的轉換,將分析樹轉換為表示最初查詢計劃的代數操作樹3、查詢最佳化工具(query
Time of Update: 2018-12-07
HTML5推出也有很長一段時間了,一直沒有學習過,閑來無事學習開發個遊戲吧。 用javascript+canvas編寫一個 五彩連珠的遊戲。Canvas 畫布 標籤<canvas id="canvas" ></canvas>,很簡單和普通的tag沒區別。 關鍵在於js對他的操作。先看個範例程式碼:<canvas id="canvas" height="100" width="100"></canvas><script>var
Time of Update: 2018-12-07
#include <vector>using namespace std;class HeapSort{private:int len;vector<int> list;void SwapNode(int i,int heapSize);public:void Sort();void Print();HeapSort(void);~HeapSort(void);};#include <iostream>#include "HeapSort.h"using
Time of Update: 2018-12-07
好吧,新的一天來了,我才開始動筆,真夠懶得:)昨天說了今天我們要畫一個球,在canvas上。好吧,這是遊戲的入門的第一步,只是昨天沒寫完,所以。。。<!DOCTYPE html><html xmlns="http://www.w3.org/1999/xhtml"><head> <title></title></head><body> <canvas id="canvas" height="400
Time of Update: 2018-12-07
Time of Update: 2018-12-07
在看了幾篇Canvas相關的文章後,發現前兩節的代碼實現還是有問題,因為知道的少,所以只能在自己已知的知識上做實現。不過還好,這是一個發現的過程,也是一個錯誤修正和完善的過程。我第一次嘗試一邊學習一遍寫部落格,我想這也有助我的學習,可以把知識掌握的牢固些,起碼忘的慢一些吧:)。 前兩節學習了幾個基本繪製的方法,lineTo moveTo和arc,也瞭解座標的情況,但寫的比較傻,只是單純的實現。