2013年10月10日 星期四

轉載:[JS] 可適性週期執行的function

作者 Knuckles(阿德)
標題 [JS] 可適性週期執行的function
時間 2010年04月23日 Fri. PM 06:22:38

雖然js有 setInterval() 可以每隔一段時間執行某個function來更新資料

不過時間設太長的話不夠即時,太短的話又浪費資源

所以想弄個可適性週性執行的方法
讓使用者閒置愈久就愈慢更新

先用    setInterval("idle_time++",1000);
每秒把idle_time的值增加1,來記錄使用者閒置了多久

利用jQuery的事件觸發
    $(document).keydown(function(e){ idle_time=0; });
    $(document).mouseover(function(e){ idle_time=0; });
來偵測使用者是否有在使用鍵盤或滑鼠

接著我們就可以利用 idle_time 與 setTimeout() 來做可適性週性執行function

利用    setTimeout('autoUpdate()',20000);
當網頁載入後過20秒執行一次 autoUpdate()
(20000ms = 20s)

然後在 autoUpdate() 中這樣寫:

function autoUpdate(){
    if(idle_time>=20){ //要閒置20秒才會執行,避免使用者正在操作時自動更新
// 更新資料程式
    }
 
    if(idle_time<60 autoupdate="" p="" settimeout="">    else if(idle_time<300 autoupdate="" p="" settimeout="">    else if(idle_time<1200 autoupdate="" p="" settimeout="">    else setTimeout('autoUpdate()',3600000);
}

這樣使用者正在操作時就不會自動更新,而
閒置了20sec~1min時,每20sec執行一次
閒置了1min~5min時,每1min執行一次
閒置了5min~20min時,每5min執行一次
閒置了20min以上時,每小時執行一次

這樣就達到可適性週期執行的效果了

要注意執行 autoUpdate() 最後一定要有 setTimeout() 再把自己執行一次
如果前面設了個 return 跑出去的話,就不會再自動執行了



--
※ 來源: DISP BBS 看板: Knuckles_note 文章連結: http://disp.cc/b/11-1K6

VisualSVN自動備份

找了一些資料,終於測試出來OK了~^^....快記下來以免忘記。

1.hotcopy方式:(轉載自 http://www.the8m.com/blog/article/chengxua/visualsvnback.html )


simpleBackup.bat要放在svn版本庫的根目錄下。
SVN_backup.bat可隨意放。==============================================
SVN_backup.bat內容:

echo off
rem Subversion的安裝目錄 //如=>"C:\Program Files\VisualSVN Server"
set SVN_HOME="C:\Program Files\VisualSVN Server"
rem 所有版本庫的父目錄 //庫目錄,如=>d:\svn
set SVN_ROOT=C:\Repositories
set SVN_ROOT_RUN="C:\Repositories"
rem 備份的目錄(如:C:\svnbak)
set BACKUP_SVN_ROOT=C:\svnbak
set BACKUP_DIRECTORY=%BACKUP_SVN_ROOT%\%date:~0,4%_%date:~5,2%_%date:~8,2%
if exist %BACKUP_DIRECTORY% goto checkBack
echo 建立備份目錄%BACKUP_DIRECTORY%>>%BACKUP_SVN_ROOT%/backup.log
md %BACKUP_DIRECTORY%
rem 驗證目錄是否為版本庫,如果是則取出名稱備份
for /r %SVN_ROOT% %%I in (.) do @if exist "%%I/conf/svnserve.conf" %SVN_ROOT_RUN%\simplebackup.bat "%%~fI" %%~nI
goto end
:checkBack
echo 備份目錄%BACKUP_DIRECTORY%已經存在,請清空。
goto end:end
=================================================
simpleBackup.bat 內容:

@echo 正在備份版本庫%1......
%SVN_HOME%\bin\svnadmin hotcopy %1 %BACKUP_DIRECTORY%\%2
@echo 版本庫%1成功備份到了%2!==================================================

轉貼:ASP.NET中解决跨子域的Session共享

為了這問題搞了好久,終於找到了解決的資料。

原本找到的資料:http://www.cnblogs.com/assion/archive/2010/07/29/1787960.html
可惜還是無法共享Session的變數,於是又找到一個完全解決的文章,測試結果OK,YA!!!....

網址如下:
http://www.itivy.com/ivy/archive/2011/4/24/634392360221984930.html

不過....還看不太懂:P...先用再說囉...

巢狀ListView後端DataBind技巧

巢狀ListView的缺點就是設計時看不到內層的長相...
一般來說巢狀ListView後端DataBind後再往下一層便無ItemDataBound事件可用了所以需要自行另寫委派。

IIS 7上出現'vfpoledb.1' 提供者並未登錄於本機電腦上。--解決了

在使用64位元windows 7的IIS時,突然原本可以用的程式出現=>'vfpoledb.1' 提供者並未登錄於本機電腦上。
找了很多資料原來VFPOLEDB不支援64位元....
後來找到一篇"開啟 IIS 7.5 中32位元程式支援 ADODB.Connection"的文章,一試果然可以了....YA...

參考網站:
http://www.eion.com.tw/Blogger/?PID=1074

頁面輸出繁簡中文轉換

心得:
利用VB的功能來做,速度比先前找的方式(比對方式)快多了。
為了偷懶結合修改了2種方式,所以CODE有點亂。....:P
有時間再試試javascript方式。

參考網頁:
http://www.dotblogs.com.tw/jeff377/archive/2008/03/17/1718.aspx

程式碼範例:

Imports System.IO

Partial Class _Default
  Inherits System.Web.UI.Page

  '''
  ''' 將繁體中文字轉換成簡體中文。
  '''
  ''' 文字內容。
  Public Shared Function Big5ToGb(ByVal Text As String) As String
    ' 將繁體中文字轉換成簡體中文,LocaleID 設為 2052
    Return StrConv(Text, VbStrConv.SimplifiedChinese, 2052)
  End Function

  '''

取得DataPager目前所在頁數的範例程式

備註:
1.DataPagerListView為ListView=>ListViewProductsList使用的DataPager。
2.HiddenFieldCurrentPageNo為存放目前所在頁數。
3.寫在ListViewProductsList的DataBound事件中。

 Private Sub ListViewProductsList_DataBound(sender As Object, e As System.EventArgs) Handles ListViewProductsList.DataBound
        '
        If Me.DataPagerListView.TotalRowCount > 0 Then
            Dim CurrentPageNo As Integer = Math.Ceiling(((Me.DataPagerListView.StartRowIndex + Me.DataPagerListView.MaximumRows) / Me.DataPagerListView.MaximumRows))
            Me.HiddenFieldCurrentPageNo.Value = CurrentPageNo.ToString
            'Me.LabelCurrentPageNo.Text = CurrentPageNo.ToString
        Else
            'Me.LabelCurrentPageNo.Text = "0"
            Me.HiddenFieldCurrentPageNo.Value = "0"
        End If

  End Sub