php+ajax 記事の自動保存コード例の方法は、主にユーザーの利便性とユーザー エクスペリエンスを向上させるために、csdn と同様にデータを自動的に保存するために使用されます。突然表示されますが、編集したデータは失われません。
これは下書きを自動的に保存するためのコア部分です。
autosavetime(sec) この関数は、タイマーをクリアするために使用されます
clearTimeout(autosavetimer);ページ内の autosavetimebox オブジェクトにカウントダウンを書き込みます
autosavetimer = setTimeout("autosavetime("+sec+"-1)",1000);
// 以下は if sec>0 の場合、autosavetime 関数は最初の 1 秒間に 1 回実行され、sec-1 の値が autosavetimebox に書き込まれます。 != ''){sec> 0の条件が真実ではないとき、それはsec< = 0で、最初にドラフトを保存し始めます。空でない場合は、autosave_post() 関数を実行します。そうでない場合は、「保存する必要はありません」と書き込みます
}
php チュートリアル コード
var userAgent = navigator.userAgent.toLowerCase();
var is_opera = (userAgent.indexOf( 'opera') != -1);
var is_saf = ((userAgent.indexOf('applewebkit') != - 1) || (navigator.vendor == 'Apple Computer, Inc.'));
var is_webtv = (userAgent.indexOf('webtv') != -1);
var is_ie = ((userAgent.indexOf(' msie') != -1) && (!is_opera) && (!is_saf) && (!is_webtv) );
var is_ie4 = ((is_ie) && (userAgent.indexOf('msie 4.') != -1) );
var is_moz = ((navigator.product == 'Gecko') && (!is_saf)) ;
var is_kon = (userAgent.indexOf('konqueror') != -1);
var is_ns4 = (( is_ns) && (parseInt(navigator.appVersion) == 4));JS コードの自動保存var autosavetimer;var is_mac = (userAgent. IndexOf('mac') != -1);
}
if ((is_ie & !is_ie4) || is_moz || is_saf || is_opera)
{
varallowajax=1;
}else{
varallowajax=0;
}
var xmlHttp = false;
function makeSendData(postData,url,functionName,httptype) {
var posturl=url;
try {
xmlHttp = new ActiveXObject("Msxml2.XMLHTTP");
} catch (e) {
try {
xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");
} catch (e2) {
;
}if (!xmlHttp && typeof XMLHttpRequest != '未定義') {
xmlHttp = new XMLHttpRequest( );
}
if (!xmlHttp) {
alert('XMLHTTP リクエストを送信できません');
return false;
}
// フォームの送信方法
xmlHttp.open(httptype, posturl, true) ;//表单提交が完了した後、イベントを開始します
var changefunc="xmlHttp.onreadystatechange = "+functionName; ///////bob から
eval (changefunc);
xmlHttp.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
xmlHttp.send(postData);
}
function autosave_post()
{
var title=document.getElementById('title').value;
var content = window.frames["Editor"].window.frames[" HtmlEditor"].document.getElementsByTagName("BODY")[0].innerHTML;
var postTime=document.getElementById('postTime').value;
if(allowajax==1)
{
content=postencode(content) ;
title=postencode(title);
var post="title="+title+"&content="+content+"&postTime="+postTime+"";
var url="ajax.php?act=autosave";
makeSendData (post,url,'autosave','POST');
}
}
function autosave()
{
if(xmlHttp.readyState == 4)
{
if(xmlHttp.status == 200)
{
var autoresponse=xmlHttp.responseText;
var automessage=document.getElementById('autosavetimebox');
if(autoresponse.indexOf("")!=-1)
{
automessage.innerHTML='您还没有写添信息,不用保存草稿';
return false;
}
if(autoresponse.indexOf("")!=-1)
{
automessage.innerHTML='保存成功、您可在在刊予想外的時刻候入草稿';
finddraft();
}
}
}
}
function finddraft()
{
if(allowajax==1)
{
var url="ajax.php?act=loaddraft" ;
makeSendData(null,url,'loaddraft','POST');
}
}
function loaddraft()
{
vardraftbox=document.getElementById('draft');
if(xmlHttp.readyState < 4)
{
draftbox.innerHTML='草稿ダウンロード中...';
}
if(xmlHttp.readyState == 4)
{
if(xmlHttp.status == 200)
{
draftbox.innerHTML= xmlHttp.responseText;
}
}
}
function cleardraft()
{
if(allowajax==1)
{
var url="ajax.php?act=cleardraft";
makeSendデータ(null,url,'nodraft ','POST');
}
}
function nodraft()
{
vardraftbox=document.getElementById('draft');
if(xmlHttp.readyState < 4)
{
draftbox.innerHTML='ダウンロード入中...';
}
if(xmlHttp.readyState == 4)
{
if(xmlHttp.status == 200)
{
draftbox.innerHTML=xmlHttp.responseText;
}
}
}
//文字列をエンコード
function postencode (str) {
str=encodeURIComponent(str);
if (is_moz) str=str.replace(/%0A/g, "%0D%0A"); //bob から return str;
}
function autosavetime(sec) {
clearTimeout(autosavetimer);
document.getElementById('autosavetimebox').innerHTML=sec+"秒";
if( SEC & GT; 0) {
AutoSavetimer = Settimeout ("AutoSAVetime ("+SEC+"-1), 1000);
} Else {
VAR Blogtital = Document.GetelementByid ('タイトル '); (if (blogtitle.value) ! = ''){
autosave_post();
{
var starttime=document.getElementById ('autosavetimebox').innerHTML;
if(starttime=='事故が発生した場合でも下書きをロードできます' || starttime=='まだ情報を追加していないため、下書きを保存する必要はありません')
{
starttime='60';
}else{
} starttime=starttime.replace('秒','');
}
var autosavefunbox=document.getElementById('autosavefunbox');
autosavefunbox.innerHTML='タイミングの停止';
starttime==0 ? starttime=60 : starttime=starttime;
autosavetime(starttime);
}
function stoptimer()
{
var autosavefunbox=document.getElementById('autosavefunbox');
autosavefunbox.innerHTML='< a href="javascript:" onClick="javascript:starttimer()">開始タイミング ClearTimeout(autosavetimer);
}
php+ajax 記事の自動保存コード インスタンス メソッドは、主に容易にすることを目的としています。 csdn と同様に、ajax を使用してデータを一時データとして保存するだけで、ユーザー データは自動的に保存されるため、電源がオフになっても編集したデータが失われることはありません。事故。
http://www.bkjia.com/PHPjc/444937.html
www.bkjia.com
http://www.bkjia.com/PHPjc/444937.html