我尝试发布一个内部有一个数组的对象,并想知道为什么我在数组的某个维度上得到错误。 所以我继续测试我的数组在不同内容上的大小。
这是我使用的脚本:
$(document).ready(function(){
/* jQuery-Code from here*/
// creating an object with on single array (at the moment
var array = [];
var obj = {};
// i <= 459941 OK when "xxxxxxxxxxxxxxxx"
// i <= 518807 OK when "xxxxxxxx"
// i <= 536364 OK when "xxxx"
// i <= 545688 OK when "xx"
// i <= 555355 OK when ""
for (var i = 0; i < 555355; i++)
{
array[i] = "";
}
obj["arr"] = array;
// Using the core $.ajax() method
$.ajax({
// The URL for the request
url: "test.php",
// The data to send (will be converted to a query string)
data: { new_name: obj},
// Whether this is a POST or GET request
type: "POST",
// The type of data we expect back
dataType : "json",
// Code to run if the request succeeds;
// the response is passed to the function
success: function( json ) {
//var result = JSON.parse(json);
var size = sizeof(json);
var i = json.arr;
var size = sizeof(i);
// do something with the array
//alert (array[0] * array[1]);
},
// Code to run if the request fails; the raw request and
// status codes are passed to the function
error: function( xhr, status, errorThrown )
{
alert( "Sorry, there was a problem!" );
},
// Code to run regardless of success or failure
complete: function( xhr, status )
{
// alert( "The request is complete!" );
}
});
});
检查我的PHP(XAMPP)我得到了这个结果:
post_max_size和memory_limit也设置为128 MB
以下是我的结果:
No. Of Elements ¡ String ¡ Bytes ¡ 128MB / Elements
----------------¡--------------------¡-------¡-----------------
459941 ¡ "xxxxxxxxxxxxxxxx" ¡ 32 ¡ 292
518807 ¡ "xxxxxxxx" ¡ 16 ¡ 259
536364 ¡ "xxxx" ¡ 8 ¡ 250
545688 ¡ "xx" ¡ 4 ¡ 246
555355 ¡ "" ¡ 0 ¡ 242
所以看来,需要一个空数组索引242字节。当我假设&#34; xx&#34;每个数组索引需要246个字节,依此类推......
所以我的问题是:为什么只需要构造函数那么多内存?