Каков наилучший способ доступа к файлу JSON с помощью локальной или глобальной переменной? - PullRequest
0 голосов
/ 03 октября 2019

В настоящее время я использую код для Cordova javascript, я использую объект массива JSON для хранения примеров, вопросов, ответов и более подробной информации, размер объекта приблизительно 1 МБ, а также для сохранения объектов в глобальной переменной и доступа к ней в любое время, когда это необходимониже.

var _quiz=
[{
    v1:1
    ,code:"q1"
    ,type:"x1"
    ,question:"This is the question"
    ,answer:1
    ,options:"Ans1!###Ans2!###Ans3###Ans4"
},
{
    v1:1
    ,type:"x2"
    ,certificate:"bronz"
    ,question:"This is the question"
    ,answer:3
    ,options:"Ans1!###Ans2!###Ans3###Ans4"
}
...
...
];


//Need to call many times
function processQuestion()
{
    _quiz
    ...
    ...
}

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

function get_object()
{
    var obj=
    [{
        v1:1
        ,code:"q1"
        ,type:"x1"
        ,question:"This is the question"
        ,answer:1
        ,options:"Ans1!###Ans2!###Ans3###Ans4"
    },
    {
        v1:1
        ,type:"x2"
        ,certificate:"bronz"
        ,question:"This is the question"
        ,answer:3
        ,options:"Ans1!###Ans2!###Ans3###Ans4"
    }
    ...
    ...
    ];

    return obj;
}


//Need to call many times
function processQuestion()
{
    var ques=get_object();
    ...
    ...
}

1 Ответ

0 голосов
/ 03 октября 2019

Используйте let во втором методе, и еще одну вещь, которую вы можете сделать, это удалить объявление var и напрямую вернуть объект из функции get_object (), чтобы там также было объявление, как return {object}.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...