javascript framework 流行的有 vue、react、angular
我覺得用jquery就很好用了
2018年6月27日 星期三
2018年6月26日 星期二
【Redis】什麼是 Redis?
Redis 是一種快速、開放原始碼的記憶體內鍵值資料結構存放區。
Redis 隨附一組多功能的記憶體內資料結構,讓您能夠輕鬆地建立各種自訂應用程式
與資料存放在磁碟或 SSD 的大多數資料庫管理系統不同,
所有 Redis 資料都位於自己的伺服器主記憶體。
因為不需要存取磁碟,像 Redis 這樣的記憶體內資料庫可避免尋找時間延遲,
還可以透過使用較少 CPU 指示的較簡單演算法存取資料。
通常操作都可在一毫秒內完成。
大流量的處理適合使用
https://aws.amazon.com/tw/elasticache/what-is-redis/
https://www.ithome.com.tw/news/119974
Redis 隨附一組多功能的記憶體內資料結構,讓您能夠輕鬆地建立各種自訂應用程式
與資料存放在磁碟或 SSD 的大多數資料庫管理系統不同,
所有 Redis 資料都位於自己的伺服器主記憶體。
因為不需要存取磁碟,像 Redis 這樣的記憶體內資料庫可避免尋找時間延遲,
還可以透過使用較少 CPU 指示的較簡單演算法存取資料。
通常操作都可在一毫秒內完成。
大流量的處理適合使用
https://aws.amazon.com/tw/elasticache/what-is-redis/
https://www.ithome.com.tw/news/119974
【PHP】為什麼大家不用 Session 了?
1.負載平衡 Session不好處理,用token後台可以支援多個平台(web、APP)
2.防止跨網域請求偽造攻擊(CSRF),每次請求都要先獲得token,只有連結不能執行
產生 token
https://blog.7311.tw/2013/12/php-token.html
https://yami.io/jwt/
2.防止跨網域請求偽造攻擊(CSRF),每次請求都要先獲得token,只有連結不能執行
產生 token
https://blog.7311.tw/2013/12/php-token.html
https://yami.io/jwt/
【jquery】bind、live、on
bind必需要每一個HtmlElement都要綁定,而live不用,
live適合用在動態新增element,如Ajax下載回來的HTML,
用live其中相同的selector的HtmlElement,就不用重Bind,
可以省去不少麻煩。
$("#myform").on("change","select",save_complete);
$("#myform").on("click",".del_score",del_score);
https://dotblogs.com.tw/wadehuang36/2010/10/13/jquery-bind-live
live適合用在動態新增element,如Ajax下載回來的HTML,
用live其中相同的selector的HtmlElement,就不用重Bind,
可以省去不少麻煩。
//在 jQuery 1.3 以上版本$(selector).live(events, data, handler);//在 jQuery 1.4.3 以上版本 $(document).delegate(selector, events, data, handler);//在 jQuery 1.7 以上版本$(document).on(events, selector, data, handler);$(":input").bind("keyup change", function(e) {
// do stuff!
})
$("#myform").on("change","input",save_complete);$("#myform").on("change","select",save_complete);
$("#myform").on("click",".del_score",del_score);
https://dotblogs.com.tw/wadehuang36/2010/10/13/jquery-bind-live
【javascript】event.preventDefault() 與 event.stopPropagation()
javascript 要停止執行程式可以用 event.preventDefault() 與 event.stopPropagation()
stopPropagation 可阻止冒泡事件發生
差別:https://dotblogs.com.tw/harry/2016/09/10/131956
https://www.cnblogs.com/jiqing9006/archive/2012/09/11/2679831.html
stopPropagation 可阻止冒泡事件發生
差別:https://dotblogs.com.tw/harry/2016/09/10/131956
https://www.cnblogs.com/jiqing9006/archive/2012/09/11/2679831.html
2018年6月25日 星期一
【Bootstrap】CSS3 icon 圖示
做網頁常常要用到小icon,以前都是用image,
現在可以直接用更方便的bootstrap的css的icon,
https://www.w3schools.com/icons/bootstrap_icons_glyphicons.asp
現在可以直接用更方便的bootstrap的css的icon,
https://www.w3schools.com/icons/bootstrap_icons_glyphicons.asp
2018年6月13日 星期三
【PHP】HTML直接輸出PDF
可以使用 tcpdf
網址:https://tcpdf.org/
範例:https://tcpdf.org/examples/example_021/
網址:https://tcpdf.org/
範例:https://tcpdf.org/examples/example_021/
require("class/TCPDF-master/tcpdf.php");
class Mya_tcpdf
{
public function tcpdf_html($html, $title)
{
// create new PDF document
$pdf = new TCPDF(PDF_PAGE_ORIENTATION, PDF_UNIT, PDF_PAGE_FORMAT, true, 'UTF-8', false);
// set document information
$pdf->SetCreator(PDF_CREATOR);
$pdf->SetAuthor('');
$pdf->SetTitle($title);
$pdf->SetSubject('');
$pdf->SetKeywords('');
// set default header data
$pdf->setPrintHeader(false);
$pdf->setFooterFont(array(PDF_FONT_NAME_DATA, '', 10));
// set default monospaced font
$pdf->SetDefaultMonospacedFont(PDF_FONT_MONOSPACED);
// set margins
//$pdf->SetMargins(PDF_MARGIN_LEFT, PDF_MARGIN_TOP, PDF_MARGIN_RIGHT);
$pdf->SetMargins(10, 10, 10);
$pdf->SetHeaderMargin(0);
$pdf->SetFooterMargin(10);
// set auto page breaks
$pdf->SetAutoPageBreak(TRUE, 10);
// set image scale factor
$pdf->setImageScale(PDF_IMAGE_SCALE_RATIO);
// set some language-dependent strings (optional)
if (@file_exists(dirname(__FILE__).'/lang/eng.php')) {
require_once(dirname(__FILE__).'/lang/eng.php');
$pdf->setLanguageArray($l);
}
// set font
$pdf->SetFont('msjh','',1); // 字形需另外下載
// add a page
$pdf->AddPage();
// output the HTML content
$pdf->writeHTML($html, true, false, true, false, '');
// reset pointer to the last page
$pdf->lastPage();
// ---------------------------------------------------------
//Close and output PDF document
$pdf->Output("abc.pdf", 'I');
}
}
【PHP】HTML Purifier 可過濾HTML限定只能用那些HTML
碰到只能用某些HTML,自己過濾超麻煩,
後來找到好用的套件 :HTML Purifier
裡面還有很多功能,也可阻擋XSS攻擊
後來找到好用的套件 :HTML Purifier
裡面還有很多功能,也可阻擋XSS攻擊
require('class/htmlpurifier/HTMLPurifier.auto.php');
$config = HTMLPurifier_Config::createDefault();
$config->set('HTML', 'Allowed',
'a[accesskey|href|rel|tabindex}target|type]
,area[accesskey|alt, coords|href|name|shape|tabindex|target]
,img[alt|border|height|ismap|src|usemap|width]
,b,blockquote[cite],br,dd,div,dl,dt,em,h1,h2,h3,h4,h5,h6
,hr,i,li[value],map,ol[start|type]
,nav[accesskey|contenteditable|contextmenu|data-*|draggable|dropzone|hidden|spellcheck|tabindex|translate]
,ol[start|type],p,pre,rp,rt,ruby,s,small,source,span,strike,strong,style,sub,sup,
,table[border|cols|summary|cellpadding|cellspacing|align]
,tbody[valign],td[bordercolor|colspan|rowspan],tfoot[valign]
,th[colspan|rowspan|scope],thead[valign],tr[colspan|rowspan]
,tt,u,ul,video[autoplay|controls|height|loop|muted|poster|preload|src|width]
'
);
$purifier = new HTMLPurifier($config);
echo $cleanContent = $purifier->purify($content);
訂閱:
意見 (Atom)