因此 PHP 文件返回一个字符串(到 ajax 调用),如下所示:
$output = $sessID."###".$sessEmail."###".$sessFirstName."###".$sessLanguage."###".$sessRememberMe;
在 javascript 中我这样做:
if (reply.indexOf("###") >= 0) {
arrayReply = reply.split("###");
user.ID = arrayReply[0];
user.Email = arrayReply[1];
user.FirstName = arrayReply[2];
user.Language = arrayReply[3];
user.RememberMe = arrayReply[4];
}
当部分回复包含我使用的分隔符“###”时,可能会出现问题。在这种情况下我能做什么呢?在我看来,使分隔符变得更加复杂/罕见并不是一个解决方案。
PS:我确实尝试过 JSON,但它的服务器端速度慢得多。
最终编辑:
服务器端 JSON 速度较慢,客户端也是如此,但它不会成为瓶颈(100.000 次调用需要 430 毫秒),而且不需要像下面 Jules 所说的那样重新发明轮子。还有一个解决方案:php 中的 bin2hex() [将时间从 430 毫秒减少到 240 毫秒],然后使用 hex2string 函数在 javascript 中返回字符串,但是不值得付出努力。原来是 JSON。谢谢大家!
最佳答案
如果正如您所说,编码为 JSON 比您可以尝试以下方法慢,
$output = '"' . some_kind_of_escape_function($sessID).'","'.some_kind_of_escape_function($sessEmail).'","'.some_kind_of_escape_function($sessFirstName).'","'.some_kind_of_escape_function($sessLanguage).'","'.$sessRememberMe.'"';
当然,将 some_kind_of_escape_function 替换为适当的 php 函数(例如,addslashes 或 mysql_real_escape_string),自从我进行 PHP 开发以来已经有一段时间了,所以选择最适合您需求的一个
然后这是一个简单的情况,用逗号分割并删除引号
关于php - 字符串分隔符ajax调用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10445839/