Итак, приведенный выше код переписан для использования итераторов вместо диапазона, основанного на цикле. Боюсь, я до сих пор не понимаю, какие изменения вы хотите сделать.
for (auto it = cuvinte.begin(); it != cuvinte.end(); ++it)
{
int nr = 1;
incercare.clear();
incercare.push_back(*it);
for (auto i2 = cuvinte.begin(); i2 != cuvinte.end(); ++i2)
{
if (incercare.back()[incercare.back().size()-1] == (*i2)[0])
{
++nr;
incercare.push_back(*i2);
}
if (nr > maxim)
{
maxim = nr;
solutie = incercare;
}
}
}
№ Определенно нет простого способа.
Я могу придумать несколько сложных способов, но они будут ненадежными.
Вам, вероятно, повезет больше, если вы разработаете процесс для отмены изменений из запроса, который вы Я только что побежал (я полагаю, что именно поэтому вы захотите это остановить).
Самый простой способ - просто отправить заголовок HTTP-ответа 503 (или аналогичный) и прервать приложение на стороне сервера (или просто прервать приложение). Предполагая, что данные не были отправлены, и / или вы проверили клиентскую часть заголовка ответа HTTP, вы можете просто обработать его как неудачный запрос.
The short answer is "no". Unless you're talking about a very long running backgrounded process on the server side, in which case you could have a second Ajax request initiate a stop on it. But if you're talking about a regular request to an Apache/PHP server, then no... identifying which Apache thread your request was running in would be trouble enough.
It would be much easier to verify your Ajax request somehow before even starting the process; make sure it's what you want to be running. You could have a Javascript confirmation process as well if you need the user to be aware that what they are doing cannot be interrupted.
As Steven posted, having a reversal process sounds like it might be in your best interest as well.
Инициируйте другой Ajax запрос. Я нашел этот поток, пытаясь выяснить, как предотвратить прерывание предыдущего запроса при вызове другого.
Нет никаких хороших способов остановить просьбу само по сети (как многие говорили), но относительно легко остановить эффекты запроса. IE
на стороне сервера: вы могли бы выбрать
(или любой, что требуется убить скрипт), постоянно проверяя глобальные переменные (выступающие в качестве флагов), такие как cookies или сеансы (опять же, предполагая Это изменится во время выполнения скрипта). Кроме того, вы можете сохранить записи файлов или базы данных в качестве флагов (которые вы можете опросить для существования).
На стороне клиента: вы можете позвонить Abort
(который не работает во всех браузерах, как другие, как другие сказали), или вы могли бы сохранить глобальный семафор / флаг в верхней части вашего обратного вызова (Это проверяет глобальное значение, чтобы увидеть, если он все еще должен выполнять или нет). Пример:
window.ajaxIsStillGood = true;
xhr.onreadystatechange = function( )
{
if( 4 === xhr.readyState && 200 === xhr.status )
{
if( true === window.ajaxIsStillGood ){ /* still good */ }
}
}
/* bad stuff happens */
window.ajaxIsStillGood = false; // now the code won't execute