繁体   English   中英

使用AJAX将字符串动态传递到页面

[英]Passing a string dynamically to a page using AJAX

我有一个带有文本字段的注册表。 我正在尝试将在该字段上输入的字符串传递给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('');
                }
            });
        }

有趣的问题! 当您在$.ajax({})传递data键值对时,它会将其转换为查询字符串,并将其附加到URL 这类似于您执行以下操作:

url: 'validate.php?q=' + str + '&t=' + vtype;

换句话说,对于GET请求,最好显式地构建和使用URL(带有查询字符串),而不是让jQuery为您完成转换。

另外,您可以在Ajax请求中传递一个processData布尔值。 如果提供FALSE ,则此布尔值将不会自动将data转换为查询字符串。

资料来源: https : //api.jquery.com/jQuery.ajax/

首先,jQuery是旨在让JavaScript开发更轻松 ; 为什么用更优雅的替代方法进行字符串连接?

jQuery的另一件事是确保您的数据正确地转义。 举个例子,等效于使用data:实际上是这样的:

url: 'validate.php?q=' + encodeURIComponent(str) + 't=' + encodeURIComponent(vtype);

否则, strvtype的值可能会使查询字符串混乱。

其次,构建请求与往返服务器的往返时间可以忽略不计,因此您应该选择更简单,更不易出错的选项。

结论

与此:

data: { cont: str , inputType : vtype} 

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM