You are here: 首頁 文章分類選單 Javascript相關訊息

飛朵啦學習手札

本網站建議使用Firefox2.0以上,或是使用Goole瀏覽器來瀏覽,並使用1024x768解析度來觀看.

Javascript相關訊息

[轉貼]背景執行node.js forever

E-mail 列印 PDF

我們希望node能夠在背景執行,而且即使登出主機也能繼續提供服務

我們希望node能夠在背景執行,而且即使登出主機也能繼續提供服務這時我們就要使用forever,他能夠讓你的js檔在背景執行,以下是安裝及啟動方法:

npm install -g forever//記得要設定為全域

sudo forever start server.js//若要以80port開啟服務,記得要以root權限執行

以下為相關指令

子命令actions:

  • start:启动守护进程
  • stop:停止守护进程
  • stopall:停止所有的forever进程
  • restart:重启守护进程
  • restartall:重启所有的foever进程
  • list:列表显示forever进程
  • config:列出所有的用户配置项
  • set <key> <val>: 设置用户配置项
  • clear <key>: 清楚用户配置项
  • logs: 列出所有forever进程的日志
  • logs <script|index>: 显示最新的日志
  • columns add <col>: 自定义指标到forever list
  • columns rm <col>: 删除forever list的指标
  • columns set<cols>: 设置所有的指标到forever list
  • cleanlogs: 删除所有的forever历史日志

配置参数options:

 
 

history.pushState無刷新改變頁面URL

E-mail 列印 PDF

ajax 的特色在於部分更換網頁內容,由於只有部分更換所以很多檔案都不必重抓,像是 head 裡面的 .js, .css ...,這會提升網頁載入的速度。
但有一個致命的缺點在於網址列沒有改變,所以使用者沒辦法按上一頁回到上個狀態,以及搜尋引擎沒辦法抓到 ajax 產生的內容,因為 ajax 替換後的內容是沒有網址的。

現在可以使用history.pushState(state, title, href)來保持這些功能.

(P.S. IE9 是不支援的,Chrome、Safri 支援)

1
2
3
4
history.pushState(state, title, href)
// state 是這次推進去的堆疊狀態,可以用來紀錄這次推進去的一些資料
// title 是網頁 title
// href 是要推進去的網址,也就是網址列上顯示的網址

 

先建立function 來判斷

function save_url(data, title, href){
if (typeof(history.pushState) == 'function') {
history.pushState(data, title, href);
}}

要使用時先宣告即可

最近更新 ( 週日, 20 十月 2013 20:52 )
 
 

console.log 的一個bug

E-mail 列印 PDF

有在寫js的人都會知道console.log這個好用的東東

不過今天發現一件事情

原始碼如下:

 

//CPC CPM塞值

var act_ad_cp_type = $('input[name="act_ad_cp_type"]:checked').val();

post_obj.act_ad_cpc = $('#act_ad_cpc').val();

post_obj.act_ad_cpm = $('#act_ad_cpm').val();

 

console.log(post_obj);

console.log(post_obj.act_ad_cpc);

 

if(act_ad_cp_type = 'CPC'){

post_obj.act_ad_cpm = '';

}else{

post_obj.act_ad_cpc = '';

}

裡面的 $('#act_ad_cpc').val() 為 1000

照道理說 console.log(post_obj);裡面的act_ad_cpc應該會是1000

但是結局是

 

console.log(post_obj);//{act_ad_cpc:''}

console.log(post_obj.act_ad_cpc); //1000

這邊猜想可能是由於對物件的處理不同

所以會直接解析完後才用

這邊做個筆記

最近更新 ( 週四, 18 十月 2012 15:10 )
 

useless setTimeout call (missing quotes around argument?)解決方案

E-mail 列印 PDF

原本寫法是

count_time();

function count_time(){

var tmp = parseInt($('#TIME').html());

if(tmp == 0){

location.href='/lvw_member/logout/';

}else{

$('#TIME').html(tmp - 1);

setTimeout(count_time(),1000);

}

}

但是這樣會出錯,當我在Firefox下調試時,出現一個錯誤:useless setTimeout call (missing quotes around argument?)。 。 。 。

最後改成這樣就OK了

 

count_time();

function count_time(){

var tmp = parseInt($('#TIME').html());

if(tmp == 0){

location.href='/lvw_member/logout/';

}else{

$('#TIME').html(tmp - 1);

setTimeout(function(){count_time();},1000);

}

}

 

最近更新 ( 週四, 05 七月 2012 17:00 )
 

關於超連結a的另外一種OnClick的寫法

E-mail 列印 PDF

原本我都是這樣寫

<a href='javascript:void(0)' OnClick='edit_confirm()' title='編輯' > </a>

原來可以這樣寫

<a href='javascript: edit_confirm()' ></a>

 

 
第 1 頁, 共 3 頁