$(document).ready(function () {
$(document).keyup(function (e) {
if (e.keyCode == 81 && e.ctrlKey) { //CTRL+Q
alert("CTRL+Q");
} else if (e.keyCode == 27) { //ESCAPE
alert("escape");
} else if (e.keyCode == 67 && e.altKey) { // ALT+C
alert("ALT+C");
}
});
});
Транзакция - это единица работы, которую вы хотите рассматривать как «единое целое». Это должно происходить либо полностью, либо не происходить вообще.
Классический пример - перевод денег с одного банковского счета на другой. Для этого вы должны сначала снять сумму с исходного счета, а затем внести ее на целевой счет. Операция должна пройти полностью. Если вы остановитесь на полпути, деньги будут потеряны, и это очень плохо.
В современных базах данных транзакции также делают некоторые другие вещи - например, гарантируют, что вы не можете получить доступ к данным, написанным другим человеком на полпути. Но основная идея та же - транзакции нужны для того, чтобы что бы ни случилось, данные, с которыми вы работаете, будут в разумном состоянии .
Вот простое объяснение. Вам необходимо перевести 100 долларов со счета A на счет B. Вы можете сделать:
accountA -= 100;
accountB += 100;
или
accountB += 100;
accountA -= 100;
Если что-то пойдет не так между первой и второй операциями в паре, у вас возникнет проблема - либо 100 долларов исчезли, либо либо они появились из ниоткуда.
Транзакция - это механизм, который позволяет вам отмечать группу операций и выполнять их таким образом, что либо все они выполняются (фиксируются), либо состояние системы будет таким, как если бы они не начали выполняться (откат).
beginTransaction;
accountB += 100;
accountA -= 100;
commitTransaction;
либо переведет 100 долларов, либо оставит оба аккаунта в исходном состоянии.
Транзакция - это способ представления изменения состояния. В идеале транзакции имеют четыре свойства, обычно известные как ACID:
См. Википедию Запись ACID для получения дополнительных сведений.
Хотя это обычно применяется к базам данных, это не должно быть. (В частности, см. Программная транзакционная память .)
«Серия операторов манипулирования данными, которые должны либо полностью завершиться, либо полностью выйти из строя, оставляя базу данных в согласованном состоянии»
http://en.wikipedia.org/wiki/Database_transaction
http://en.wikipedia.org/wiki/ACID
ACID = A tomicity, C onsistency, I solation, D uability
Если вы хотите, чтобы несколько транзакционных ресурсов были задействованы в одной транзакции, вам потребуется использовать что-то вроде решения двухфазной фиксации . XA довольно широко поддерживается.
Я бы предположил, что определение «обработки транзакций» было бы более полезным, поскольку оно охватывает транзакции как концепцию в информатике.
Из википедии:
В информатике, Обработка транзакций - это обработка информации, которая делится на отдельные неделимые операции, называемые транзакциями. Каждая транзакция должна быть успешной или неудачной как единое целое; он не может оставаться в промежуточном состоянии.
http://en.wikipedia.org/wiki/Transaction_processing#Implementations
Я считаю, что транзакция - это элементарное действие в терминах СУБД.
, что означает, что его нельзя отделить. да, в транзакции может быть несколько инструкций для выполнения системой. но они связаны вместе, чтобы выполнить одну базовую задачу
, например. нужно пройти по мосту (будем рассматривать это как переход), а для этого, скажем, нужно 100 шагов. в целом эти шаги нельзя разделить. когда вы выполнили половину из них, у вас есть только два выбора: продолжить их все и вернуться к исходной точке. это похоже на результат транзакции: успех (зафиксирован) и сбой (откат)
In addition to the above responses, it should be noted that there is, at least in theory, no restriction whatsoever as to what kind of resources are involved in a transaction.
Most of the time, it is just a database, or multiple distinct databases, but it is also conceivable that a printer takes part in a transaction, and can cause that transaction to fail, say in the event of a paper jam.