2019年3月28日 星期四

Cefsharp3 run at windows embedded standard

Cefsharp 是個可應用於Windows的chrome core的瀏覽器套件,近來搭配它做了一個WIN Form AP不過在發行時異常(尚未解),先用inno setup封裝頂著不過在更新上就沒有Visual Studio的方便。

佈署到客戶端在win 7 ~ X都順利運行,不過遺憾的是在客戶端有若干機器所使用的系統為 windows embedded standard,執行後直接跳出App Crash的訊息,自事件檢知器中看到的資訊貌似載入CefSharp.BrowserSubprocess.exe時出現的,研判應該跟multi thread設計有關吧,這部分只是猜測也無濟於事。

經GitHub更新到最近的73.X.X.X版本後直接編譯(use .NET Framework 4.6.2)的執行檔也是出現相同的狀況,後來在更新 Microsoft Visual C++ Redistributable至2015出現Setup Fails因此進行排除,順利安裝成功後再執行就順利啟動了(此期間安裝2012, 2013, 2017都順利,但無法啟動)。

處理這類線索有限的Debug過程是枯燥的,神隊友找到線索並順利排除真好。當下自己是直接在系統中安裝visual studio打算直接在windows embedded standard進行編譯,這好像也行但現在也只能先忙其他的,在緩緩囉。


2019年3月12日 星期二

CI cookies, session, cache memo

在CodeIgniter中頻繁使用Model在資料量大使用量高的EC網站是不好的選擇,可是EC網站的資料也不適合用靜態頁來處理,畢竟有許多互動的設計若是使用靜態頁那麼就失去意義了,某些(聯絡我們, 用戶條款)之類的到是很適合。
Ex. $this->output->cache($n);
放置在Controler的 $this->load->view($action, $data); 前。

首先在config/autoload.php裡面需要加入相關的help
$autoload['helper'] = array('cookie');

寫入
set_cookie('cookname', $cookdata, 3600);
取得
get_cookie('cookname')
刪除
delete_cookie('cookname');

於多網站共用Code的使用案例上,可是當使用prefix前綴來避免衝突/讀取錯誤的情事。
※全域設定可在 application/config/config.php 檔案中所設置的前綴  $config[‘cookie_prefix’]
※容量(size)大概4K使用,所以資料量大的話會無法儲存,存放於用戶端的瀏覽器內所以瀏覽器有限制存取時會無法使用。

首先在config/autoload.php裡面需要加入相關的help
$autoload['libraries'] = array('session');

寫入
$this->session->set_userdata('sessionname', $cookdata);
取得
$this->session->userdata('sessionname')
刪除
$this->session->unset_userdata('sessionname');
※ 容量(size)大概較Cookies大些但若是無法儲存則表示資料量超過容量限制,另外資料存放在記憶體內,伺服器記憶體管理務必注意。

cache:
$this->load->driver('cache'));


寫入$this->cache->save('cachename', $cookdata, 300); //300=5min
取得
$this->cache->get('cachename')
刪除
$this->cache->delete('cachename');
※ 使用檔案儲存所以資料量不用擔心,不過因為是FILE所以I/O讀取的效率就偏低。

2019年3月7日 星期四

HTML中的特殊符號對照表(備忘)

在寫入資料庫與檔案(靜態檔,資源檔)常因特殊字元造成載入/顯示上的異常,這個網頁列出相當多的對應可以提供需要時的查詢,PHP最常碰到的大概是單/雙引號造成的字串判斷異常,可以用以下sample code來排除。

$Value= str_replace("'", "'", $Value);