Javascript 优化jquery代码,通过$.post发送多个数组和简单变量
我在服务器端生成这个js,这样阵列就可以有更多的元素Javascript 优化jquery代码,通过$.post发送多个数组和简单变量,javascript,jquery,Javascript,Jquery,我在服务器端生成这个js,这样阵列就可以有更多的元素 var o = 'hi world'; var keys = ['foo','bar']; var values = ['foox', 'barzs']; 如何优化此部分?: var data = [{name:'prop', value: o}]; data.push({name: 'keys', value: 'foo'}); data.push({name: 'keys', value: 'bar'}); data.push({na
var o = 'hi world';
var keys = ['foo','bar'];
var values = ['foox', 'barzs'];
如何优化此部分?:
var data = [{name:'prop', value: o}];
data.push({name: 'keys', value: 'foo'});
data.push({name: 'keys', value: 'bar'});
data.push({name: 'values', value: 'foox'});
data.push({name: 'values', value: 'barzs'});
$.post('url', $.param(data), ...);
我不知道在一个有限的例子中,你是否真的在优化任何东西,但是如果你真的有大数据集,你可以通过一个循环推送值 同样,这取决于您所说的优化是什么意思,但我假设您处理的数据集比您的示例大得多,这意味着必须为每个值编写push语句
var data = [{name:'prop', value: o}];
for ( i in keys ) {
data.push({ name: 'keys', value: keys[i] });
}
for ( i in values ) {
data.push({ name: 'values', value: values[i] });
}
我认为这相当于:
$.post('url', {
'prop': o,
'keys': ['foo', 'bar'],
'values': ['foox', 'barzs']
}, function() { ... });
在某种程度上,这取决于服务器的期望。一些服务器环境理解将同一参数的多个实例视为数组值参数的HTTP约定,而另一些服务器环境则更喜欢参数名称具有显式的内在“索引”,如“键[0]”、“键[1]”等。一些服务器环境也理解这一点。您所说的“优化”是什么意思好吧,谢谢你的澄清!我的是asp.net mvc,这种方式将获得键[0]=“foo,bar”,而不是same@Omu如果是这样的话,那是因为asp.net将在服务器上重新组合单独的参数。对我来说,这是一个糟糕的想法,但是还有很多原因我不使用ASP:-)如果您使用篡改数据或类似的东西,您应该能够看到jQuery拆分数组值参数,以便它们在HTTP请求中真正分开。