干货分享4:防止下载/提交数据不完全

王志勇 发表于 2018年08月13日 09:16

简述:有了这一功能,用户提交留言时,再也不用按Ctrl+A、Ctrl+C来防止发送失败而丢失。

在过去开发的项目里,有些部分用户需要提交、或修改数据,偶尔有时候会因为服务器响应慢而导致文字下载不完全、提交数据不完全或丢失。在新项目里,我想到了一个新办法:

1. 防止文字下载不完全的方案:
用户需要编辑文章时,在<textarea></textarea>标签1中下载的服务器的文字部分,用PHP的strlen函数,获取该文字的长度值。该页面,建立一个AJAX,并建立另外一个<form>,内含<textarea></textarea>标签2,用户打开页面,该AJAX会让网页自动提交标签2的文字内容,由服务器来判断标签1、标签2的strlen()是否一致,如果一致则下载完全。

之所以这样做,而不在客户端用JavaScript的length,是因为全角字符,JavaScript会识别为长度1;PHP会识别为长度2(ANSI编码),或长度3(UTF-8编码)。

2. 防止提交数据不完全的方案:
在<form>里,建立一个隐藏的<input>,用来获取<textarea></textarea>的最后几个字符,同时,在<textarea>标签里用onkeyup=……来自动改变这个<input>的值。提交后,在服务器端进行对比,如果这个<input>与<textarea>提交的数据的最后一段字符相同,则说明提交成功。

3. 防止提交后找不到服务器的方案:
要提交时,在客户端的JavaScript写入Cookies数据;提交成功后,在服务器端清除这个Cookies。

虽然这3个步骤比原先复杂了好多,但是对于一个重要的项目,会有很好的用户体验。

0条评论:

发表评论:
名字: (*必填)
博客: (可省,仅限于Blog地址)

正文:

    记住信息? 否   回复第

直接发送Trackback

Copyright © 2017-2018 blog.emxel.com 版权所有 Powered by Arsue