JavaScript如何接收数据库最后一个条目的时间戳?

时间:2016-01-14 00:57:51

标签: javascript php mysql timestamp

注意 这是不同的,因为我希望Javascript接收它。

即使我以后必须切换到套接字,我也想知道如何使用这种方法。虽然我可能会在以后切换到推送方法,但目前不感兴趣

原因是我想减少使用的服务器资源,因为我的聊天目前每500毫秒检查一次消息,这很糟糕;但是,这是必要的,因为我的一些用户一直在键入消息,一些用户只有时间,例如每2分钟一次消息。因此,我想知道如何获取数据库的最后一个条目的时间戳,以确定它们是否在最后一次发送消息,30秒,然后每10秒检索一次消息。如果他们在过去2分钟内发送了一个,则每30秒检查一次,但如果他们非常活跃,则增加时间间隔。关键是根据活动确定间隔。我已经超过了我的CPU一次,我也想尝试一下。 我可能不得不切换到套接字,我没有任何经验。

如果我碰巧得到了时间戳;我该如何处理时间戳?

  

时间戳 - 时间()=以毫秒为单位的时间?

我可以将时间戳设置为像这样的cookie。

JS:

@echo off
setlocal EnableExtensions DisableDelayedExpansion

rem Define global constants here:
set "INFILE=line.txt"
set "OUTFILE=line_new.txt"
set "SEARCH= "
set "REPLACE=+"
set "KEEPQUOTES="

set "QUOTE="""
set "QUOTE=%QUOTE:~,1%"
set "QFLAG="
> "%OUTFILE%" (
    for /F usebackq^ delims^=^ eol^= %%L in ("%INFILE%") do (
        set "LINE=%%L"
        call :SUB LINE
    )
)

endlocal
exit /B

:SUB
setlocal EnableDelayedExpansion
set "LINE=!%1!"
set "LINENEW="
set /A "POS=0"
:LOOP
set "CHAR=!LINE:~%POS%,1!"
set /A "POS+=1"
if not defined CHAR (
    echo(!LINENEW!
    endlocal
    exit /B
)
if "!CHAR!"=="!QUOTE!" (
    if defined QFLAG (
        set "QFLAG="
    ) else (
        set "QFLAG=Quoted"
    )
    if defined KEEPQUOTES (
        set "LINENEW=!LINENEW!!CHAR!"
    )
) else if defined QFLAG (
    if "!CHAR!"=="!SEARCH!" (
        set "LINENEW=!LINENEW!!REPLACE!"
    ) else (
        set "LINENEW=!LINENEW!!CHAR!"
    )
) else (
    set "LINENEW=!LINENEW!!CHAR!"
)
goto :LOOP

php.php:

$(document).ready(function(){

document.cookie...

var getMsg = function(){

 $.ajax {
url: php.php,
...
}

}

if(document.cookie < 30 secs){
var time = 500;
} 

setInterval(time, getMsg)

});

1 个答案:

答案 0 :(得分:2)

您可以执行相反的操作,而不是将服务器汇集在一起​​ - 当您的应用在数据库中插入消息时,您会向客户发送消息。

WebSockets就是答案。

已经构建了一些易于使用的库:

  • ASP.Net SignalR,如果你正在使用Microsoft堆栈(使用,工作和 它很简单);
  • Socket.IO,如果你正在使用NodeJS(也使用过,工作起来很简单);
  • 棘轮,用于php(从未使用过)
  • 您也可以使用Meteor
  • 其他,取决于您使用的技术