Чтобы определить, почему код PHP не работает в коде JavaScript , нам нужно понять, что такое клиентский и серверный язык и как они работают.
Серверные языки (PHP и т. д.) : они извлекают записи из баз данных, поддерживают состояние через HTTP-соединение без состояния и выполняют много вещи, требующие безопасности. Они находятся на сервере, эти программы никогда не имеют своего исходного кода для пользователя
[/g16] image attr
Хотя с другой стороны Клиентский язык на стороне клиента (например, JavaScript) находится в браузере и запускается в браузере, Сценарии на стороне клиента обычно относятся к классу компьютерных программ в Интернете, которые выполняются на стороне клиента, в веб-браузере пользователя, а не на стороне сервера .
JavaScript отображается пользователю и может быть легко изменен, поэтому для обеспечения безопасности мы не должны полагаться на JavaScript.
Итак, когда вы делаете запрос HTTP на сервере, чем сервер, сначала внимательно читает файл PHP, чтобы узнать, есть ли какие-либо задачи, которые необходимо выполнить, и отправлять ответ на клиентскую сторону и снова, как @deceze сказал * Как только PHP закончил вывод ответа, сценарий заканчивается, и на сервере ничего не произойдет, пока не появится новый запрос HTTP . *
[/g17]
Итак, что мне делать, если мне нужно вызвать PHP? Это зависит от того, как вам это нужно: либо перезагружая страницу, либо используя вызов AJAX.
- Вы можете выполнить перезагрузку страницы и отправить запрос HTTP
- вы можете сделать вызов AJAX с помощью JavaScript, и это не требует перезагрузки страницы
Хорошо Чтение:
Теоретический предел может составлять 2,147,483,647, но практический предел нигде не близок. Поскольку ни один объект в .NET-программе не может превышать 2 ГБ, а тип строки использует unicode (два байта для каждого символа), лучшее, что вы могли бы сделать, это 1 073 741 823, но вы вряд ли сможете выделить это на 32-битная машина.
Это одна из тех ситуаций, где [" Если вам нужно спросить, возможно, вы что-то не так сделали. "].
Строки не ограничены целым числом, как принято считать.
Ограничения памяти в стороне, строки не могут иметь более 230 (1 077 741 824) символов, поскольку ограничение на 2 ГБ накладывается Microsoft CLR (Common Language Runtime).
Надеюсь, это может измениться в будущем.
200 мегабайт ... в этот момент ваше приложение превращается в виртуальную остановку, имеет около установленную память, и o / s начинает действовать так, как вам нужно будет перезагрузиться.
static void Main(string[] args)
{
string s = "hello world";
for(;;)
{
s = s + s.Substring(0, s.Length/10);
Console.WriteLine(s.Length);
}
}
12
13
14
15
16
17
18
...
158905664
174796230
192275853
211503438
Поскольку String.Length
является целым числом (это псевдоним для Int32
), его размер ограничен символами Int32.MaxValue
unicode. ; -)
LongLength
, а поток использует long
как длину. Хотя это правильный ответ, это точный способ измерения этого.
– Willem Van Onsem
27 January 2015 в 20:59
byte[]
. – svick 7 January 2013 в 23:15