что не так с использованием 'javascript: history.go (-1)' ?

наткнулся на некоторые шутки в твиттере о том, как ужасно использовать

javascript:history.go(-1)

, конечно, без каких-либо намеков на то, почему.

Если это так ужасно, почему? Какая альтернатива? (кроме history.back (), который, кажется, делает то же самое). Это вопрос кроссбраузерной совместимости?

Например, я видел, как он использовался на странице с ошибкой, чтобы пользователи могли попытаться «вернуться» с помощью указанное выше.

Я пробовал использовать Google, но безрезультатно, почему это было бы так ужасно использовать. Любые указатели / объяснения были бы признательны.

Спасибо. Тип byte, sbyte, short, ushort, int, uint, char, float, bool, ...

Из спецификации 10.5.3 Volatile fields:


Тип изменчивого поля должен быть одним из следующих:

  • Тип ссылки.

  • Тип byte, sbyte, short, ushort int, uint, char, float, bool, System.IntPtr или System.UIntPtr.

  • Тип перечисления, имеющий базовый тип перечисления. байта, sbyte, short, ushort, int, или uint.


Во-первых, я хочу подтвердить, что я правильно понял: я предполагаю, что указанные выше типы могут быть энергозависимыми, поскольку они хранятся в памяти как 4-байтовый блок (для ссылочных типов из-за его адреса), что гарантирует чтение Операция / запись является атомарной. Типы double / long / etc не могут быть изменчивыми, потому что они не являются атомарными для чтения / записи, поскольку они занимают более 4 байтов в памяти. Правильно ли я понимаю?

И второе, если первое предположение верно, почему определенная пользователем структура только с одним полем int в ней (или что-то подобное, 4 байта в порядке) не может быть нестабильным? Теоретически это атомарно, верно? Или это ' s не разрешены просто потому, что все определяемые пользователем структуры (которые, возможно, имеют размер более 4 байтов) не могут быть энергозависимыми по дизайну ?

11
задан Cheng Chen 25 February 2011 в 03:41
поделиться