背景:我刚刚在本地主机上完成了我的网站的注册表单。在表单中,用户上传他们的第一张个人资料图片。表单用ajax提交,在服务器端验证,图片在服务器端写入一个文件夹。一旦图像被写入,我将用户名返回给 ajax 成功,然后他们被重定向到他们新创建的主页。
问题:当我在本地主机上测试表单时,他们的所有数据都按预期导入到数据库中。但是,这些文件被写入我的 eclipse 工作区中的一个文件夹,并且它没有注意到新数据。我已经调整了我的 Eclipse 工作区首选项,但是当新图像命中文件时它拒绝刷新。所以不幸的是,当用户被重定向到他们的主页时,他们会看到一个 404,他们的图像应该在哪里。它会一直保持这种状态,直到我进入 Eclipse 并刷新我的工作区,然后它才会出现。我发现在调用 ajax 成功之前图像已完全写入文件,因此函数运行速度不会太快,服务器(或 eclipse 工作区)不会刷新。
问题:当我将网站转移到 Godaddy VPS 时,我应该担心这一点吗?我担心当用户上传图片时会发生同样的事情,他们将不得不等待服务器需要多长时间才能意识到有新内容。如果我向第一次使用该网站的用户显示 404 图像,这可能会对网站的受欢迎程度造成毁灭性的影响。那么我应该做些什么来防止我的本地主机上出现这个问题。但更重要的是,您认为这会发生在实时服务器上吗?如果是,我该怎么办?
代码:这是我的 javascript 代码。那么我应该在我的成功领域做些什么来检查这个问题吗?
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);
}
};
}