Зачем складывать назад? [Дубликат]

Вы неправильно используете Ajax. Идея состоит в том, чтобы не возвращать что-либо, а вместо этого передавать данные на вызов, называемый функцией обратного вызова, которая обрабатывает данные.

То есть:

function handleData( responseData ) {

    // Do what you want with the data
    console.log(responseData);
}

$.ajax({
    url: "hi.php",
    ...
    success: function ( data, status, XHR ) {
        handleData(data);
    }
});

Возвращение чего-либо в обработчике ничего не сделает. Вы должны либо передавать данные, либо делать то, что хотите, непосредственно внутри функции успеха.

80
задан Ciro Santilli 新疆改造中心 六四事件 法轮功 22 April 2015 в 15:12
поделиться

7 ответов

Я считаю, что это чисто дизайнерское решение. Не все из них растут вниз - см. эту SO-нить для хорошего обсуждения направления роста стека на разных архитектурах.

40
ответ дан Community 24 August 2018 в 02:04
поделиться

Одно хорошее объяснение, которое я слышал, состояло в том, что некоторые машины в прошлом могли иметь только неподписанные смещения, поэтому вам нужно, чтобы стек увеличивался вниз, чтобы вы могли поразить своих местных жителей, не потеряв лишнюю инструкцию для подделки отрицательного смещения .

18
ответ дан anq 24 August 2018 в 02:04
поделиться

IIRC стек растет вниз, потому что куча растет вверх. Возможно, это было наоборот.

4
ответ дан Christian V 24 August 2018 в 02:04
поделиться

Одна из возможных причин может заключаться в упрощении выравнивания. Если вы поместите локальную переменную в стек, которая должна быть размещена на 4-байтной границе, вы можете просто вычесть размер объекта из указателя стека и затем обнулить два нижних бита, чтобы получить правильно выровненный адрес. Если стек растет вверх, то выравнивание становится немного сложнее.

5
ответ дан jalf 24 August 2018 в 02:04
поделиться

Я считаю, что соглашение началось с IBM 704 и его позорного «декрементного регистра». Современная речь назвала бы это поле смещения команды, но дело в том, что они пошли вниз , а не вверх .

1
ответ дан luser droog 24 August 2018 в 02:04
поделиться

Я не уверен, но я делал некоторое программирование для VAX / VMS в те дни. Кажется, я помню, что одна часть памяти (куча?) Поднимается, и стек падает. Когда они встретились, у вас не было памяти.

0
ответ дан Martin 24 August 2018 в 02:04
поделиться

Всего 2c больше:

. Помимо всего сказанного исторического обоснования, я вполне уверен, что нет никаких оснований, которые бы имели место в современных процессорах. Все процессоры могут принимать подписанные смещения, а максимальная дистанция кучи / стека довольно спорная с тех пор, как мы начали работать с несколькими потоками.

Я лично считаю это недостатком дизайна безопасности. Если, скажем, дизайнеры архитектуры x64 могли бы обратить вспять направление роста стека, то переполнение буфера стека было бы устранено - это своего рода большое дело.

0
ответ дан Ofek Shilon 24 August 2018 в 02:04
поделиться
Другие вопросы по тегам:

Похожие вопросы: