我有一个带有文本字段的注册表单。我试图将该字段上输入的字符串传递给php文件以动态验证字符串。什么是最好的(以性能为导向)的方式。
使用
data: { cont: str , inputType : vtype}
或查询字符串
url: 'validate.php?q='+str+'t='+vtype;
这是我目前的剧本:
function validate(str,vtype) {
$.ajax({
type: 'GET',
url: 'validate.php?q='+str+'t='+vtype,
timeout: 1000,
success: function (data) {
$("#validationIndicator").html(data);
},
error: function (XMLHttpRequest, errorThrown) {
$("#validationIndicator").html('');
}
});
}
答案 0 :(得分:1)
有趣的问题!当您在data
中传递$.ajax({})
键值对时,会将其转换为查询字符串,并将其附加到URL
。这与您执行以下操作类似:
url: 'validate.php?q=' + str + '&t=' + vtype;
换句话说,对于GET
请求,最好明确地构建和使用URL(带有查询字符串),而不是让jQuery为你做转换。
此外,您可以在processData
请求中传递Ajax
布尔值。如果提供FALSE
,则此布尔值不会自动将data
转换为查询字符串。
答案 1 :(得分:1)
首先,jQuery旨在使JavaScript开发更容易;为什么要通过更优雅的替代品进行字符串连接?
jQuery做的另一件事是确保您的数据被正确转义;举一个例子,相当于使用data:
实际上是这样的:
url: 'validate.php?q=' + encodeURIComponent(str) + 't=' + encodeURIComponent(vtype);
否则,str
或vtype
的值可能会破坏查询字符串。
其次,构建请求所花费的时间与往返服务器的时间可以忽略不计,因此您应该选择更简单且不易出错的选项。
坚持下去:
data: { cont: str , inputType : vtype}