Archive for the ‘Programming/javascript’ Category.

HTML5 畫統計圖的 library RGraph

編程最佳的字型 consolas / notepad++ 及 winscp 設定 / Best programming fonts

Protected: 程式開發 的 Application Layout — Javascript 建立物件的方法

This post is password protected. To view it please enter your password below:


50 好看好用的 icon

Hypertext Transfer Protocol — HTTP/1.1 – 這可是現今最偉大的 protocol 呀!

The Hypertext Transfer Protocol (HTTP) is an application-level
protocol for distributed, collaborative, hypermedia information
systems. It is a generic, stateless, protocol which can be used for
many tasks beyond its use for hypertext, such as name servers and
distributed object management systems, through extension of its
request methods, error codes and headers
http://tools.ietf.org/html/rfc2616

Status Code Definitions
http://tools.ietf.org/html/rfc2616#section-10

204 No Content

The server has fulfilled the request but does not need to return an
entity-body, and might want to return updated metainformation. The
response MAY include new or updated metainformation in the form of
entity-headers, which if present SHOULD be associated with the
requested variant.

If the client is a user agent, it SHOULD NOT change its document view
from that which caused the request to be sent. This response is
primarily intended to allow input for actions to take place without
causing a change to the user agent’s active document view, although
any new or updated metainformation SHOULD be applied to the document
currently in the user agent’s active view.

The 204 response MUST NOT include a message-body, and thus is always
terminated by the first empty line after the header fields.

可以利用這點作一些事, 譬如記錄 user 的訪問, log 等等

PHP Coding Standards

參考: Mantis : http://www.mantisbt.org/guidelines.php

中文翻譯: http://www.ichiayi.com/wikipage/tech/mantis_coding

First, start off by reading the PHP Coding Standards document. I’ve deviated in a few places but just about everything in the document applies here as well.

Above all, write code that is easy to read and maintain. Comment blocks of code and functions at all times. And get on my case if I deviate too much as well!

Naming Variables
  • Use all lower case.
  • Use _ to separate words, e.g. $green_color_value
  • Use descriptive names (except loop variables).
  • Loop variables can be of the usual variety: $i, $j, $k, etc.
  • Count variables should follow the format $*_count, e.g. $bug_count
  • Global variables should be prefixed with g_
  • Temporary variables should be prefixed with t_
  • Parameters and variables passed from forms that have been cleaned of any special SQL chars (i.e. slashes) should be prefixed with c_
  • Uncleaned function parameters should be prefixed with p_
  • Uncleaned variables passed from forms should be prefixed with f_
  • Other variables are prefixed with v_, v2_, etc.
  • Never prefix with l_ or o_ or q_ (visually confusing)
  • $query and $result should be used for SQL query and results respectively
Naming Functions
  • Use all lower case.
  • Use _ to separate words, e.g. setup_page_breaks()
  • Keep functions to 5 words or less
  • Functions that print should be prefixed with print_.
  • Try to use prefixes to group functions (i.e., email_, news_, etc.)
Naming Classes
  • Use FirstLetterOfWordIsCaptilized style
  • Variables that are class objects should have the prefix coo_
Naming Files
  • Use all lower case.
  • Use _ to separate words, e.g. view_new_bugs_page.php
  • Use .php file extensions
  • Filenames must be less than 32 characters in length. This plays nice with older file systems like Mac OS.
  • Included files should be suffixed by _inc.php
SQL formatting
  • UPPERCASE all SQL keywords:
    $query = "SELECT *
    	FROM $g_mantis_bug_table
    	WHERE id='1'";
  • Always assign a query string to a variable. This makes code easier to debug when problems occur. Do not create the query in the call to the function.
  • Break up SQL queries over multiple lines to be easy to read.
General Formatting
  • Use TABS with a size of 4
  • Follow the table formatting of existing pages
  • Use <?php ?> for php delimiters.
  • Try not to print/echo HTML unless it’s short or in a function loop
  • Do not use the EOF construct
Miscellaneous
  • Don’t use the ?: construct except in very rare cases. It is confusing and has a lot of bug potential.
  • Avoid magic numbers. The only magic numbers in use should be 1 and 0 and their meaning should be obvious.
Page Guidelines
  • The first item should be the copyright notice
  • At the bottom will be the footer information and closing print_ functions.
Braces and Parantheses
  • Parantheses should be right after a function name, e.g. function() not function ()
  • Parantheses should have a space right after a keyword (if, while, for), e.g. for (…)
  • Formatting of braces is illustrating below. We use unmatched placing.
  • Arrays should be referenced with no spaces, e.g. $arr['index'] not $arr[ 'index' ]
    for (...) {
        blah
    }
    
    or
    
    if (...) {
        blah
    }
  • if … else blocks should be in this format:
    if (...) {
        blah1
    } else {
        blah2
    }
Comparisons
  • The NOT operator should be placed next to its operand. No spaces, e.g. !$value
  • Parentheses should be used for grouping, especially with multiple comparisons, e.g. if ( ( null == $val ) && ( null == $val2 ) )
Strings
  • Use spaces around the string concatenation operator, e.g. ‘str ‘ . $value . ‘ str2′;
  • Use ‘ instead of " if there are no variables or special characters.
Comments
  • Use the # symbol for line commenting, not //
  • Use /* */ for block commenting unless you nest /* */ comments. Generally, only use this during development.
  • Use @@@ followed by a brief message (BROKEN, TEMPORARY, etc) as a "look at this" indicator. Leaving your name next to is a good idea. This way critical items can easily be found.
Editor Features
  • Search and replace in multiple files
  • Goto line number
  • Syntax highlighting
  • Adjustable TAB spacing

[note] javascript 的 foreach / split / php explode style 寫法

var loc="25.258861, 121.509389";
var arr=loc.split(","); 

var content = '';
for (var key in arr) {
  content += key + ' : ' + arr[key] + "\n";
}

另一個

var myarr = new Array('red','green','blue');

var content='';
for(var key in myarr){
	content += key+' : '+myarr[key]+"\n";
}

alert( content );

[摘] Javascript MIME type / Apache 的 javascript default MIME type 跟 official MIME type of javascript 設得不一樣

http://jsgears.com/thread-158-1-1.html

org: http://annevankesteren.nl/2005/02/javascript-mime-type

Google 有部份 .js 從 server 端送出時是給 text/javascript

Blog 裡飄雪的效果

[影片] The Ajax Universe

如果程式語言是艘船, 那麼 …. 是….

這邊有 AIR / Flex 的 sample

Protected: Top 10 custom JavaScript functions of all time

This post is password protected. To view it please enter your password below:


範例程式 jQuery /JSON / PHP /json_encode / json_decode sample code

jQuery : 請參考這篇 : http://jsgears.com/thread-63-1-1.html

Microsoft 也提供 video 教學: http://msdn.microsoft.com/zh-tw/asp.net/dd310332.aspx#jQuery

$(document).ready( function(){
  var data = new Object();
  data.hello = "Hello";
  data.world = 'World';
  data.worked = " it worked ";
  data.somebool = true;
  data.array = new Array("he\"ll\"o", '"World"');
  var dataString = $.toJSON(data);
  $.post('phpfile.php', {data: dataString}, function(res){
      var obj = $.evalJSON(res);
      if(obj.somebool === true)
      $("#result").html(obj.hello + ' ' + obj.array[1] + obj.worked + ". Message from PHP: "+obj.php_message);
    });
});

… 未完

颱風天在家練功 – CSS / jQuery

jQuery :

  1. a
  2. #ID : 符何 ID 的元素
  3. .Class : match class items
  4. a#ID.Class : match a tag and ID and Class

 

 

 

這兩天把 blog 的 theme 換了 , 換成黑的 , 也把 javascript 整理了一下

 

筆記一點, CSS 裡面: ID 選擇器用 # 表示 , 類選擇器用 “.” 表示

寫了一個有意思的小程式, 在這! 怎玩呢? 要先在格子內填一下資料, 不清楚的人搞不好真的填了 ID / PW , 然後呢 mouse 不小心就移到底下, 就觸動了 mouseover 的 event , 於是好玩的狀況來了….看程式可以清楚 monster 在搞什麼.

這表示啥呢…就是如果這個頁面若可以外掛別人寫的 javascript 那麼別人就可以取得 user 在這頁面上輸入的資料.

[code language='html']
 

帳號 :
密碼 :

mouse 經過這邊會 onMouseOver 喔!

 


[/code]

jQuery 學習程式

jQuery 的 slogon —> “jQuery: The Write Less, Do More, JavaScript Library”

Continue reading ‘jQuery 學習程式’ »

一些處理 javascript 減少 server http connection 數的方法

 

http://joliclic.free.fr/php/javascript-packer/en/
http://yuiblog.com/blog/2008/07/16/combohandler/
This is a fast, low-overhead port of Douglas Crockford’s JSMin JavaScript minifier to PHP. It requires PHP 5 or higher.
JSMin is a filter which removes comments and unnecessary whitespace from JavaScript files.
http://code.google.com/p/jsmin-php/

裝了 SyntaxHighlighter Plus , 程式碼可以看清楚了

SyntaxHighlighter Plus

It supports the following languages (the alias for use in the post is listed next to the name):

* Bash — bash, sh
* C++ — cpp, c, c++
* C# — c#, c-sharp, csharp
* CSS — css
* Delphi — delphi, pascal
* Java — java
* JavaScript — js, jscript, javascript
* PHP — php
* Python — py, python
* Ruby — rb, ruby, rails, ror
* SQL — sql
* VB — vb, vb.net

* XML/HTML — xml, html, xhtml, xslt

修改 … /wp-content/plugins/syntaxhighlighter-plus/shlfiles/SyntaxHighlighter.css
把 .dp-highlighter 的 width 改成想要的寬度

[code language=C]
#include
main() {
printf("Hello World!");
}

[/code]

test

[code language=php]
function foo() {
  echo "Hello World!\\n";
}
[/code]

判斷瀏覽器 XMLHttpRequest 的方式 / IE7