JavaScript字符串可以存储100K个字符吗?我编写了一个脚本,其中PHP中的字符串传递给JavaScript中的变量.当它被缩短到几乎一万个字符时它工作正常,但在尝试传递长度大于100K的整个字符串时会破坏脚本.但是没有发现任何错误.对于任何增加JavaScript变量字符限制的方法,有没有解决方案?我只是个初学者.希望有人可以找到解决方案.
Jac*_*fin 24
我认为问题是询问实际限制,而不是规格限制。而且,不,它并不总是您拥有的 RAM 量。我有 x86_64 24GB PC,运行 Linux Mint、x86_64 Firefox 和 x86_64 Chrome,我遇到的限制是:
任何更高的值,Firefox 都会抛出 a Uncaught RangeError: repeat count must be less than infinity and not overflow maximum string size,而 Chrome 则会抛出Uncaught RangeError: Invalid string length。使用以下代码片段对浏览器中的最大字符串长度运行二分搜索:
for (var startPow2 = 1; startPow2 < 9007199254740992; startPow2 *= 2)
try {" ".repeat(startPow2);} catch(e) {
break;
}
var floor = Math.floor, mask = floor(startPow2 / 2);
while (startPow2 = floor(startPow2 / 2))
try {
" ".repeat(mask + startPow2);
mask += startPow2; // the previous statement succeeded
} catch(e) {}
console.log("The max string length for this browser is " + mask);Run Code Online (Sandbox Code Playgroud)
JS或PHP对其字符串的大小没有理论上的限制.
我认为有一些可能的情况.
首先,检查您是否通过HTTP GET发送字符串.GET有一个最大大小,我认为它取决于您的Web服务器.
其次,如果您使用POST,请在php.ini中查找post_max_size并查看它是否小于您发送给它的字符串大小以及.htacccess文件,以查看php_value post_max_size是否不是太小.
第三,检查php.ini中的memory_limit是否限制脚本可以使用的内存大小.
希望这可以帮助.
| 归档时间: |
|
| 查看次数: |
17788 次 |
| 最近记录: |