лучший способ обрабатывать большие файлы js в codeigniter - PullRequest
0 голосов
/ 25 ноября 2011

Я создаю пакет статистики для одного из приложений, которые я создал, и мне бы хотелось, чтобы на странице было 8 графиков с различной информацией. проблема в том, что лучший способ перебрать мои данные в файле js? (или добавить base_url () в таблицы стилей?

я держу свои js в root / scripts

В настоящее время у меня есть 8 графиков для моих диаграмм Google-

 function drawtwitterChart() {
    var data = new google.visualization.DataTable();
    data.addColumn('string', 'x');
    data.addColumn('number', 'Twitter');

    <?foreach($twitter_results->result_array() as $twitter_result){?>
        data.addRow(["<?=$twitter_result['hour']?>", <?=goAssocArrayNumeric($twitter_result,0)?>]);
    <?}?>
      // Set chart options
      var options = {'title':'How Much Pizza I Ate Last Night',
                     'width':300,
                     'height':250};
      new google.visualization.LineChart(document.getElementById('twitter_chart_div')).
      draw(data, {curveType: "function",
                  width: 400, height: 320,
                  vAxis: {maxValue: 10}}
          );
    }

все это в шапке моей страницы, я хотел бы удалить это и поместить в js файлы? нужно еще перебирать данные - интересно, как это делают другие?

1 Ответ

0 голосов
/ 25 ноября 2011

Есть несколько способов приблизиться к этому.

Самым простым было бы создать контроллер для вашего динамически генерируемого JS.Перед вызовом представления, которое выводит JS, установите заголовок ответа:

$this->output->set_header('Content-type: text/javascript');

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

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

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