2017年2月26日 星期日

nodejs about 翻譯

因為剛好看完所以順便翻譯一下幫助後面的人,內容如果有錯請糾正,因為非正式僅供參考,專有名詞我就不翻譯了這樣比較準。
原文 :https://nodejs.org/en/about/


Node 是一個分同步事件驅動的javascript runtime,被開發來建立可擴展性的網路應用程式。在底下的 "hello world" 範例中,許多連線可以同事被處理。在每次連接時callback 才會被觸發,如果沒有工作Node就會進入睡眠。

const http = require('http');

const hostname = '127.0.0.1';
const port = 3000;

const server = http.createServer((req, res) => {
  res.statusCode = 200;
  res.setHeader('Content-Type', 'text/plain');
  res.end('Hello World\n');
});

server.listen(port, hostname, () => {
  console.log(`Server running at http://${hostname}:${port}/`);
});
相較於現今採用多threads 來達成同時處理多連線請求的模型。Thread-based networking 相對沒有效率,也很難使用。此外,因為根本沒有鎖死資源,Node 使用者將不須擔心process進入死結。在Node 幾乎沒有方法直接存取I/O,所以process永不Block。因為沒有Block,需要延展性的系統非常適合在Node 開發。
如果上面面有些字不懂,這裡有專門介紹Blocking vs Non-Blocking的章節.

與Node 有類式的設計跟影響設計的系統有Ruby's Event Machine 和Python's Twisted。Node的模式又更先進一點, Node的event loop 模式是一個runtime 架構,而不是一個類別庫。在其他系統中,在啟動 event-loop模式時一定會被Block住,通常Block會在會在script 開始時,直到伺服器啟動了。在Node 中沒有這類的啟動呼叫。Node 只會在執行script時才會進入event loop 。Node 會在沒有任呵callbacks 要被執行時離開。
這樣的行為就跟執行JavaScript 一樣 — 對使用者來說event loop是被隱藏。
HTTP 在Node 中是first class citizen,設計目的是為了streaming 跟讓核心低延遲。這個特性讓Node 適合被建置web library 跟framework。
雖然Node 被設計是沒有threads,但不代表你不能在你的環境中進階的使用多核心。子進程可以由child_process.fork() API 來做置換,而且被設計在父子進程(processes)是很容易溝通的。 上面的API 都是基於 cluster module,讓你可以分享sockets  在每個進程之間達到平均負載平衡。

2017年2月24日 星期五

利用 AngularJS 點表格 轉跳頁面

利用 AngularJS  點表格 轉跳頁面


<pre>
<!DOCTYPE html>
<html>
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.4.8/angular.min.js"></script>
<body>

<div ng-app="myApp" ng-controller="myCtrl">


<table >
    <thead>
      <tr>
        <th>Firstname</th>
        <th>Lastname</th>
        <th>Email</th>
      </tr>
    </thead>
    <tbody>
      <tr ng-click="myFunction()">
        <td>John</td>
        <td>Doe</td>
        <td>john@example.com</td>
      </tr>
      <tr>
        <td>Mary</td>
        <td>Moe</td>
        <td>mary@example.com</td>
      </tr>
      <tr>
        <td>July</td>
        <td>Dooley</td>
        <td>july@example.com</td>
      </tr>
    </tbody>
  </table>

</div>
<script>
var app = angular.module('myApp', []);
app.controller('myCtrl', function($scope) {
    $scope.count = 0;
    $scope.myFunction = function() {
        window.location = "http://www.google.com";
    }
});
</script> 

</body>
</html>
</pre>


參考連結:
https://www.w3schools.com/angular/angular_events.asp
http://stackoverflow.com/questions/4744751/how-do-i-redirect-with-javascript
https://www.w3schools.com/html/html_tables.asp

jquery 範例 讓select 隨著 某個TAG內容改變 顯示

jquery  範例 讓select 隨著 某個TAG內容改變 顯示


<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Document</title>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.1.1/jquery.min.js"></script>
</head>
<body>
<p id="q">a</p>
<select>
 <option id="v" value="volvo">Volvo</option>
 <option id="s" value="saab" >Saab</option>
 <option id="m" value="mercedes" >Mercedes</option>
 <option id="a" value="audi">Audi</option>
</select>
<script type="text/javascript">
$(document).ready(function(){
var tmp="#"+$("#q").text();
console.log(tmp);
$(tmp).attr("selected","selected");
});
</script>
</body>

</html>


2017年2月17日 星期五

SQL select 多層

加總某張表之後在與某張表結合,就需要用到多層的select ,以下是範例


SELECT m.*, x.total
FROM mem m ,
     (SELECT o.id , sum(o.Price) total 
      FROM  o 
      GROUP BY o.ID) x 
WHERE m.ID = x.ID



JOIN 也可以這樣用。

SELECT m.*,x.total 
FROM mem m 
LEFT JOIN 
            (SELECT o.ID , sum(o.Price) total 
             FROM  o 
             GROUP BY o.ID) x 
ON m.ID = x.ID

2017年2月16日 星期四

Sublime3 php 檢查語法錯誤工具 安裝 in windows

Sublime​Linter-php

Sublime​Linter是個支援許多語言的語法錯誤檢查器,而此篇只專門檢查php。

https://github.com/SublimeLinter/SublimeLinter-php

1.安裝 Package Control。
Package Control 是個專門協助安裝sublime的工具,Sublime​Linter也是透過他來安裝。

2.使用Package Control安裝Sublime​Linter。
要先安裝Sublime​Linter主體,針對其他程式語言才會有用。

3.使用Package Control安裝SublimeLinter-php。


4.設定php 執行的路徑。

windwos系統->進階系統設定->環境變數->path->編輯

將你php.exe的路徑加上去,我是使用xampp安裝的,每個人路徑都不同。



5.成功


2017年2月8日 星期三

CodeIgniter simple example

CodeIgniter simple example


application\controllers\Boundtest.php


<?php
defined('BASEPATH') OR exit('No direct script access allowed');

class Boundtest extends CI_Controller {
public function __construct()
{
      parent::__construct();        
      $this->load->model('Go');
    }

public function boundview()
{
//zino

$data['output']=$this->Going_Model->get_user($ID);
$this->load->view('Boundtest',$data);
}

}

application\models\Go.php

<?php



class Going extends CI_Model {



    public function __construct()
    {
            parent::__construct();
         
    }


    public function get_user($id)
    {
      //zino

      $sql = 'SELECT * FROM `member`';
             
       return $query = $this->db->query($sql)->result();

    }



}

application\views\Boundtest.php

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Document</title>
</head>
<body>
<h1>test</h1>
<p><?php var_dump($output) ?> </p>
</body>
</html>

application\config\routes.php

$route['bound'] = 'Boundtest/boundview';