>백엔드 개발 >PHP 튜토리얼 >PHP ajax_php 기술로 기사 자동 저장을 구현하는 방법

PHP ajax_php 기술로 기사 자동 저장을 구현하는 방법

WBOY
WBOY원래의
2016-05-16 20:26:471030검색

이 글의 예시에서는 php ajax를 통해 글을 자동으로 저장하는 방법을 설명하고 있습니다. 참고할 수 있도록 모든 사람과 공유하세요. 구체적인 분석은 다음과 같습니다.

PHP Ajax 기사를 자동으로 저장하는 방법은 주로 사용자 편의를 제공하고 사용자 경험을 향상시키는 것입니다. csdn과 마찬가지로 ajax를 사용하여 사용자의 데이터를 자동으로 저장하므로 정전이 발생합니다. 사고가 발생해도 편집한 데이터는 손실되지 않습니다.

초안 자동 저장의 핵심 중 하나입니다.

autosavetime(초) 이 함수는 타이밍을 시작하는 데 사용됩니다

clearTimeout(autosavetimer) 타이머 지우기

document.getElementById('autosavetimebox').innerHTML=sec "seconds"; 페이지에서 autosavetimebox 개체를 가져오고 여기에 카운트다운을 씁니다.

코드 복사 코드는 다음과 같습니다.
if(sec>0) {
​​​ autosavetimer = setTimeout("autosavetime(" sec "-1)",1000); 
//sec>0이면 자동 저장 시간 함수가 처음 1초에 한 번 실행되고 sec-1의 값이 자동 저장 시간 상자에 기록됩니다
}else {
            var title=document.getElementById('title')
If(title.value!=''){
자동 저장_포스트()
            }그밖에{
                   document.getElementById('autosavetimebox').innerHTML='저장할 필요 없음';           }
}
이 부분은 sec>0의 조건이 성립되지 않은 경우입니다. ㅎㅎ, sec 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_ns     = ((userAgent.indexOf('호환') == -1) && (userAgent.indexOf('mozilla') != -1) && (!is_opera) && (!is_webtv) && (!is_saf));
var is_ns4    = ((is_ns) && (parseInt(navigator.appVersion) == 4));
var is_mac    = (userAgent.indexOf('mac') != -1);
if ((is_ie & !is_ie4) || is_moz || is_saf || is_opera)
{
    var 허용 ajax=1;
}그밖에{
    var 허용 ajax=0;
}
var xmlHttp = false;
function makeSendData(postData,url,functionName,httptype) {
 
var posturl=url;
{
을 시도해 보세요.    xmlHttp = new ActiveXObject("Msxml2.XMLHTTP");
} 잡기 (e) {
   {
을 시도해 보세요.      xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");
   } 잡기(e2) {
     xmlHttp = 거짓;
   }
}
if (!xmlHttp && typeof XMLHttpRequest != '정의되지 않음') {
   xmlHttp = 새로운 XMLHttpRequest();
}
 
if (!xmlHttp) {
        Alert('XMLHTTP 요청을 보낼 수 없습니다.');
        거짓을 반환;
}
 
// 提交表单的方
xmlHttp.open(httptype, posturl, true);
 
// 当表单提交完成后触发一个事件
varchangefunc="xmlHttp.onreadystatechange = " functionName;  ///////밥에서
평가(changefunc);
xmlHttp.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded'); 
xmlHttp.send(postData);
}
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)
    {
        내용=postencode(내용);
        title=postencode(제목);
        var post="title=" 제목 "&content=" 콘텐츠 "&postTime=" postTime "";
        var url="ajax.php?act=autosave";
        makeSendData(post,url,'autosave','POST');
    }
}
자동 저장() 기능
{
    if(xmlHttp.readyState == 4)
    {
        if(xmlHttp.status == 200)
        {
            var autoresponse=xmlHttp.responseText;
            var automessage=document.getElementById('autosavetimebox');
            if(autoresponse.indexOf("")!=-1)
            {
                automessage.innerHTML='사용할 수 없는 모든 정보가 포함되어 있습니다.';
                거짓을 반환;
            }
            if(autoresponse.indexOf("")!=-1)
            {
                automessage.innerHTML='설정이 완료되면 외부 활동이 종료됩니다';
                finddraft();
            }
        }
    }
}
함수 finddraft()
{
    if(allowajax==1)
    {
        var url="ajax.php?act=loaddraft";
        makeSendData(null,url,'loaddraft','POST');
    }
}
함수 loaddraft()
{
    vardraftbox=document.getElementById('draft');
    if(xmlHttp.readyState < 4)
    {
        draftbox.innerHTML='입력 내용 중...';
    }
    if(xmlHttp.readyState == 4)
    {
        if(xmlHttp.status == 200)
        {
            draftbox.innerHTML=xmlHttp.responseText;
        }
    }
}
함수 Cleardraft()
{
    if(allowajax==1)
    {
        var url="ajax.php?act=cleardraft";
        makeSendData(null,url,'nodraft','POST');
    }
}
함수 nodraft()
{
    vardraftbox=document.getElementById('draft');
    if(xmlHttp.readyState < 4)
    {
        draftbox.innerHTML='입력중...';
    }
    if(xmlHttp.readyState == 4)
    {
        if(xmlHttp.status == 200)
        {
            draftbox.innerHTML=xmlHttp.responseText;
        }
    }
}
//문자열 인코딩
함수 포스트인코드(str) { 
    str=encodeURIComponent(str);
    if (is_moz) str=str.replace(/ /g, " "); //bob에서
    str을 반환;
}

自动保存的js代码,代码如下:
复代码 代码如下:
var autosavetimer;
함수 자동 저장 시간(초) {
   ClearTimeout(자동저장타이머);
   document.getElementById('autosavetimebox').innerHTML=sec "秒";
   if(초>0) {
       autosavetimer = setTimeout("autosavetime(" sec "-1)",1000);
   }else {
       var blogtitle=document.getElementById('제목');
       if(blogtitle.value!=''){
           autosave_post();
       }그밖에{
           document.getElementById('autosavetimebox').innerHTML='사용할 수 없음';  
       }
   }
}
함수 시작타이머()
{
    var starttime=document.getElementById('autosavetimebox').innerHTML;
    if(starttime=='保存成功,您可以您可以在发生时候载入草稿' || starttime==='您还没有添写信息,不用保存草稿')
    {
        시작시간='60';
    }그밖에{
        starttime=starttime.replace('秒','');
    }
    var autosavefunbox=document.getElementById('autosavefunbox');
    autosavefunbox.innerHTML='저장';
    시작 시간==0 ? 시작시간=60 : 시작시간=시작시간;
    자동저장시간(시작시간);
}
함수 stoptimer()
{
    var autosavefunbox=document.getElementById('autosavefunbox');
    autosavefunbox.innerHTML='开始计时';
    ClearTimeout(자동저장타이머);
}

希望本文所述对大家程序设计有所帮助。

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.