Вот код для Get, Set and Delete Cookie в JavaScript .
function getCookie(name) {
name = name + "=";
var cookies = document.cookie.split(';');
for(var i = 0; i
Источник: http://mycodingtricks.com/snippets/javascript/javascript-cookies/
Оборудование сложное; это упрощенное объяснение.
Типичный современный компьютер может иметь 32-битную шину данных. Это означает, что любая выборка, которую должен выполнить ЦП, будет извлекать все 32 бита определенного адреса памяти. Поскольку шина данных не может получить ничего меньше 32 бит, два младших бита адреса даже не используются на адресной шине, поэтому создается впечатление, что ОЗУ организовано в последовательность 32-битных слов вместо 8-битных байтов .
Когда ЦП выполняет выборку для одного байта, цикл чтения на шине будет извлекать 32 бита, а затем ЦП отбрасывает 24 из этих битов, загружая оставшиеся 8 бит в любой регистр. Если ЦП хочет получить 32-битное значение, которое не выровнено по 32-битной границе, у него есть несколько общих вариантов:
Различные процессоры, с которыми я работал, прошли все четыре этих пути. В общем, для максимальной совместимости безопаснее всего выровнять все n-битные чтения по n-битной границе. Однако вы, безусловно, можете использовать ярлыки, если уверены, что ваше программное обеспечение будет работать на каком-то конкретном семействе процессоров с известным поведением невыровненного чтения. И даже если невыровненное чтение возможно (например, на процессорах семейства x86), оно будет медленнее.
вероятно, не тот, который вы хотелиРазличные процессоры, с которыми я работал, прошли все четыре этих пути. В общем, для максимальной совместимости безопаснее всего выровнять все n-битные чтения по n-битной границе. Однако вы, безусловно, можете использовать ярлыки, если уверены, что ваше программное обеспечение будет работать на каком-то конкретном семействе процессоров с известным поведением невыровненного чтения. И даже если невыровненное чтение возможно (например, на процессорах семейства x86), оно будет медленнее.
вероятно, не тот, который вы хотелиРазличные процессоры, с которыми я работал, прошли все четыре этих пути. В общем, для максимальной совместимости безопаснее всего выровнять все n-битные чтения по n-битной границе. Однако вы, безусловно, можете использовать ярлыки, если уверены, что ваше программное обеспечение будет работать на каком-то конкретном семействе процессоров с известным поведением невыровненного чтения. И даже если невыровненное чтение возможно (например, на процессорах семейства x86), оно будет медленнее.
Компьютер всегда считывает некоторые блоки фиксированного размера, которые выровнены.
Таким образом, если вы не выровняете данные в памяти, вам, вероятно, придется читать более одного раза.
Пример
Итак, это в основном для ускорения.
Try reading a serial port. The data is 8 bits wide. Nice hardware designers ensure it lies on a least significant byte of the word.
If you have a C structure that has elements not word aligned ( from backwards compatibility or conservation of memory say ) then the address of any byte within the structure is not word aligned.
Причиной всех правил выравнивания является различная ширина линий кэша (Instruction-Cache имеет 16-байтовые линии для архитектуры Core2, а Data-Cache имеет 64-байтовые линии для L1 и 128-байтовые линии для L2).
Таким образом, если вы хотите хранить/загружать данные, которые пересекают границу Cahce-Line, вам придется загружать и сохранять обе Cache-линии, что снижает производительность. Поэтому вы просто не делаете этого из-за снижения производительности, все просто.