Php 使用AJAX将字符串动态传递到页面
我有一个带有文本字段的注册表。我试图将该字段中输入的字符串传递到php文件,以动态验证该字符串。最好的(性能方面的)方法是什么 使用Php 使用AJAX将字符串动态传递到页面,php,jquery,ajax,Php,Jquery,Ajax,我有一个带有文本字段的注册表。我试图将该字段中输入的字符串传递到php文件,以动态验证该字符串。最好的(性能方面的)方法是什么 使用 data: { cont: str , inputType : vtype} 或查询字符串 url: 'validate.php?q='+str+'t='+vtype; 这是我当前的脚本: function validate(str,vtype) { $.ajax({ type: 'GET',
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('');
}
});
}
有趣的问题!当您在
$.ajax({})
中传递数据
键值对时,它将其转换为查询字符串,并将其附加到URL
。这类似于您执行以下操作:
url: 'validate.php?q=' + str + '&t=' + vtype;
换句话说,对于GET
request,最好显式地构建和使用URL(带有查询字符串),而不是让jQuery为您进行转换
另外,您可以在Ajax
请求中传递processData
布尔值。如果提供了此布尔值FALSE
,则不会将数据
自动转换为查询字符串
来源:首先,jQuery旨在简化JavaScript开发;为什么要用更优雅的替代品进行字符串连接 jQuery所做的另一件事是确保数据被正确转义;举个例子,使用
数据:
的等效方法实际上是:
url: 'validate.php?q=' + encodeURIComponent(str) + 't=' + encodeURIComponent(vtype);
否则,str
或vtype
的值可能会弄乱查询字符串
其次,构建请求与往返服务器所花费的时间可以忽略不计,因此您应该选择更简单、更不容易出错的选项
结论
请这样做:
data: { cont: str , inputType : vtype}
虽然这主要是基于观点,但我建议使用前一种方法。谢谢。这是有道理的,现在我有一些事情要向我的教授解释。他真是个表演狂。总是想要一个关于“为什么要使用这个而不是那个”的解释。如果是这样,他可能会问你为什么要使用jQuery而不是Vanilla JS;-)谢谢你的建议,我想我会查一下Vanilla JS。谢谢你提供的信息:)。当我向我的朋友解释这件事的时候肯定会有帮助的,没问题。如果有帮助的话,如果你把它作为一个答案,我将不胜感激。谢谢