2019年5月19日 星期日

IE CSS 失效

CSS 在 IE 瀏覽器下失效

在網站開發時,總會發現 IE 瀏覽器跟別人不太一樣
最常出事就是 CSS,CSS 在 IE 瀏覽器下失效
提供幾個從 stackoverflow 找的方法能影響下面

Do not code CSS on the HTML file

    這裡應該是指 CSS Code 有很多 HTML Code 不一樣,舉個最常出現的例子就是註解
 <style type ="text/css"> 
  <!-- You need this in order to have CSS, it has --> 
  p {color: blue; font-family:arial;}
 </style>
    沒意外上面這段註解會失效,且很可能影響下面的程式碼

Make a separate CSfile and link to it

 <link rel="stylesheet" href="css/style.css">

Always add <!DOCTYPE> tag to every HTML page

    其中最有效的就是第三點,在每個 HTML 頁面開頭都要加上所謂的 DOCTYPE 「文件類型」,DOCTYPE 的功能主要是標準化網頁,如果沒有這個 Tag,瀏覽器會依照自己的意思去解釋,而其中 IE 最怪,所以常常失效!

請把指定版本的<meta>放在第一位

    原話 : Make <meta http-equiv="X-UA-Compatible" content="IE=edge">, is the first <meta> tag on your page, otherwise IE may not respect it     上面這個指定 IE 用 Edge 去讀取這段 Code,不放第一個還真的會失效,你可以用 F12 去檢查當前瀏覽頁面用的 IE 版本,如果你沒有指定 DOCTYPE,不意外會變成 IE5,很慘的...

參考資料 :
1. https://stackoverflow.com/questions/595768/css-not-working-in-ie
2. http://www.flycan.com/article/css/html-doctype-97.html
3. http://www.webpage.idv.tw/maillist/maillist4/new/02/02.htm
4. https://www.itread01.com/p/648379.html
5. https://stackoverflow.com/questions/25557299/internet-explorer-11-disable-display-intranet-sites-in-compatibility-view-via

JS 日期操作

JavaScipt 日期操作


  1. 宣告
  2. var now = new Date();
    var targetDate = new Date("2018/11/24");
    
    // IE 要注意的地方,IE date 格式為 yyyy/mm/dd
    var somedate = "2019-5-17";
    var targetDate = new Date(somedate.replace("-","/"));

    * 不照IE格式會顯示 NaN-NaN-NaN ().(更多參考資訊)

  3. 加減、指定數值
  4. var mydate = new Date("2018/11/24");
    mydate.setFullYear(mydate.getFullYear()+1); // FullYear 為西元4碼
    mydate.setMonth(mydate.getMonth()+1);       // Month 為 0 ~ 11
    mydate.setDate(mydate.getDate()+1);         // Date 為 1 ~ 31

參考資料 :
1. http://www.ucamc.com/e-learning/javascript/265-javascript-set-date-function.html
2. https://dotblogs.com.tw/tiffany/2012/05/16/72207

2019年5月3日 星期五

PHP 日期加減

PHP 日期加減
1. mktime()
$date1 = date ("Y-m-d H:i:s" , mktime(date('H'), date('i'), date('s'), date('m'), date('d')-1, date('Y'))); 
$date2 = date ("Y-m-d H:i:s" , mktime(date('H'), date('i'), date('s'), date('m'), date('d'), date('Y')));
2. strtotime()
$today = '2013-04-19';
echo date("Y-m-d", strtotime($today."+3 year"));
echo date("Y-m-d", strtotime($today."-1 month"));
echo date("Y-m-d", strtotime($today."+10 week"));
echo date("Y-m-d", strtotime($today."+10 day"));
echo date("Y-m-d", strtotime($today."+2 hour"));
echo date("Y-m-d", strtotime($today."+20 minute"));
echo date("Y-m-d", strtotime($today."+5 seconds"));
echo date("Y-m-d", strtotime($today."+1 day 5 seconds"));
echo date("Y-m-d", strtotime($today."+1 week -2 day"));


參考資料 :
http://blog.twbryce.com/strtotime-method/

PHP Function with Optional Parameters

PHP Function with Optional Parameters

有 2 種方法

1. 用 NULL arguments
function method($arg1 = null, $arg2 = null){
  $arg1 = $arg1? $arg1: "default_value_for_arg1";
  $arg2 = $arg2? $arg2: "default_value_for_arg2";
}
2. 傳 Array
function method($arr){
  $arg1 = $arr['$arg1'] ? $arr['$arg1'] : "default_value_for_arg1";
  $arg2 = $arr['$arg2'] ? $arr['$arg2'] : "default_value_for_arg2";
}

MySQL 利用執行順序提高效率

MySQL 利用執行順序提高效率


因為公司的內部網站平常有點慢,後來又架了個在美國的 Server
原本的小問題就被放大,雖然優化網站的方式主要不是靠 SQL的改進

最普通的優化就是不要用 SELECT * ,理由顯而易見,資料越多搜尋越慢
依照這點,所以要讓搜尋的資料越少,就要利用明確的條件去限制搜尋
也就是利用 SQL 的執行順序

SQL 的執行順序如下 :
  1. FROM
  2. ON
  3. JOIN
  4. WHERE
  5. GROUP BY
  6. WITH CUBE 或 WITH ROLLUP
  7. HAVING
  8. SELECT
  9. DISTINCT
  10. ORDER BY
  11. Top / limit
所以可以改進的就是 ON 跟 WHERE
而且 ON 在 JOIN 前,所以我們要利用 ON 把 Table 的資料降到最小

所以好的 SQL 我認為應該是,利用 ON 來把資料降到最小,甚至到不用 WHERE 的程度

參考資料 :
https://docs.microsoft.com/
http://pclevinblog.pixnet.net/blog/

Popular Posts