среда, 20 ноября 2013 г.

JavaScript Уменьшение размера cookie путем кодирования и декодирования значений

Модуль JavaScript, предназначенный для уменьшения размера cookie путем кодирования и декодирования сохраняемых в cookie значений.

Файл encodeordecode.js

define([], function() {

    // Кодирование и декодирование значения
    // value - кодируемое или декодируемое значение
    // decodeArray - массив, позволяющий соспоставить значение и его код
    // decodeArray = [['value1', 'code1'], ['value2', 'code2']]
    // operation - тип операции: кодирование 'encode' или декодирование 'decode'
    // Пример
    // encodeOrDecodeValue ('value', [['value1', 'code1'], ['value2', 'code2']], 'encode') // Возвращает: 'code1'
    function encodeOrDecodeValue (value, decodeArray, operation) {
        var decodeArrayLength = decodeArray.length
            , result = ''
            , i
            , j
            , k;
        if (operation === 'encode') {
            j = 0;
            k = 1;
        } else if (operation === 'decode') {
            j = 1;
            k = 0;
        } else {
            throw new Error('Parameter "operation" in "encodeOrDecodeValue" function must be "encode" or "decode".');
        }
        for (i = 0; i < decodeArrayLength; i++) {
            if (value === decodeArray[i][j]) {
                result = decodeArray[i][k];
            }
        }
        return result;
    }
   
    return encodeOrDecodeValue;

});

Использование в файле index.js

require.config({
    paths: {
        encodeordecode: 'encodeordecode'
    }
});

define(['encodeordecode'], function(encodeOrDecodeValue) {

   encodeOrDecodeValue ('value', [['value1', 'code1'], ['value2', 'code2']], 'encode'); // code1
   encodeOrDecodeValue ('code1', [['value1', 'code1'], ['value2', 'code2']], 'decode'); // value1

});

Комментариев нет:

Отправить комментарий