2013-03-16 4 views
0

배경 : 방금 ​​내 로컬 호스트에서 내 사이트의 등록 양식을 완료했습니다. 양식 내에서 사용자는 첫 번째 프로필 사진을 업로드합니다. 양식은 서버 측에서 검증 된 ajax와 함께 제출되고 이미지는 서버 측에서 폴더로 작성됩니다. 이미지가 작성되면 해당 사용자의 사용자 이름을 아약스 성공으로 반환 한 다음 새로 만든 홈페이지로 리디렉션됩니다.작업 영역 새로 고침까지 이미지가 아약스 기능 이후에 표시되지 않음

문제점 : 로컬 호스트에서 양식을 테스트 할 때 모든 데이터가 예상대로 db로 가져옵니다. 그러나 파일을 내 이클립스 작업 공간 내의 폴더에 기록되며 새 데이터를 알지 못합니다. 내 이클립스 환경 설정을 수정했는데 새로운 이미지가 파일을 덮었을 때 새로 고침을 거부합니다. 불행히도 사용자가 자신의 홈페이지로 리디렉션되면 이미지가 있어야하는 404 페이지가 표시됩니다. 내가 일식에 들어가서 작업 공간을 새로 고칠 때까지 이렇게 머무를 것입니다. 나는 이미지가 파일에 Ajax 성공이 호출되기 전에 완전히 작성되었다는 것을 알아 냈으므로 함수가 너무 빠르지 않고 서버 (또는 Eclipse 작업 영역)가 새로 고쳐지지 않는다.

질문 : 내 사이트를 godaddy VPS로 전송할 때 걱정해야 할 사항이 있습니까? 나는 사용자가 이미지를 업로드 할 때 똑같은 일이 발생하고 서버가 새로운 콘텐츠가 있음을 깨닫기까지 오래 기다려야한다는 점을 염려합니다. 그리고 사이트에서 처음으로 경험이있는 사용자에게 404 이미지를 표시하면 사이트 인기도가 크게 떨어질 수 있습니다. 그래서 내 로컬 호스트에서이 문제를 방지하기 위해해야 ​​할 일이 있습니까? 그러나 더 중요한 것은 이것이 라이브 서버에서 발생한다고 생각합니까? 그렇다면 어떻게해야합니까?

코드 : 여기에 자바 스크립트 코드가 있습니다. 어쩌면이 문제를 확인하기 위해 내 성공 영역에서 무엇을해야합니까?

function addNewUser() 
{ 
    var form = new FormData(); 
    var ajaxObject = getAjaxObject(); 
    var gender = (getElement('registerMale').checked) ? "his" : "her"; 
    form.append("userName", getValue('registerUserName')); 
    form.append("email", getValue('registerEmail')); 
    form.append("password", getValue('registerPassword')); 
    form.append("fName", getValue('registerFName')); 
    form.append("lName", getValue('registerLName')); 
    form.append("displayName", getValue('registerFName') + " " + getValue("registerLName")); 
    form.append("location", getValue('registerLocation')); 
    form.append("gender", gender); 
    form.append("currentDefault", getElement("registerCurrentDefault").files[0]); 
    form.append("discipline", getValue("registerDiscipline")); 
    form.append("birthDay", getValue("registerBirthDay")); 
    form.append("birthMonth", getValue("registerBirthMonth")); 
    form.append("birthYear", getValue("registerBirthYear")); 

    ajaxObject.open("POST", "addNewUser", true); 
    ajaxObject.send(form); 

    ajaxObject.onreadystatechange = function() 
    { 
     if(ajaxObject.readyState == 4 && ajaxObject.status == 200) 
     { 
      divLink("profile?user=" + ajaxObject.responseText); 
     } 
    }; 
} 

답변

0

걱정하지 않아도됩니다. 사용중인 응용 프로그램 서버에서 응용 프로그램을 실행 해보십시오. 예상 된 결과가 나옵니다.

관련 문제