Сгенерируйте скрипт с помощью php или используйте json - PullRequest
1 голос
/ 25 апреля 2011

Мне нужно знать, что лучше / эффективнее, когда моя страница загружается, мне нужно загрузить некоторые элементы из базы данных. Прямо сейчас я использую php для генерации правильного JS в теге script.

Это выглядит примерно так

<script type="text/javascript">
canvas = $('#drawn').get(0)
c = canvas.getContext('2d');
    <? foreach ($projectArray[1] as $shape): ?>
    <?
        switch ($shape['type']): 
            case 1: ?>
                c.beginPath();
                c.moveTo(<?=$shape['x_points'][0] ?>, <?=$shape['y_points'][0] ?>);
                <? for ($point = 0; $point < count($shape['x_points'])-1; $point++): ?>
                    c.lineTo(<?=$shape['x_points'][$point] ?>, <?=$shape['y_points'][$point] ?>);
                <? endfor; ?>
                c.stroke();
                <? break;
...

Это генерирует скрипт внизу страницы, который очень длинный и выглядит примерно так.

script type="text/javascript"> 
canvas = $('#drawn').get(0)
c = canvas.getContext('2d');
c.beginPath();
c.moveTo(373, 138);
...
c.lineTo(586, 242);
c.lineTo(588, 243);
c.lineTo(589, 244);
c.stroke();
c.beginPath();
c.moveTo(222, 165);
c.lineTo(222, 165);
...
c.lineTo(313, 309);
c.lineTo(261, 309);
c.stroke();
c.beginPath();
c.moveTo(81, 110);
c.lineTo(81, 110);
c.lineTo(84, 110);
...

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

На самом деле мой вопрос: кошерно ли генерировать такой скрипт или я должен использовать json, и каковы преимущества его выполнения в любом случае?

1 Ответ

0 голосов
/ 25 апреля 2011

Я бы предложил JSON.Вы можете извлекать записи из БД в массив и просто конвертировать их в JSON, в результате вы получите более читаемый код и еще более быстрый PHP-код, что приведет к более быстрой загрузке страницы.Теперь, до тех пор, пока вы не профилируете свою сторону JS, трудно предсказать, будет ли JSON быстрее на стороне клиента или нет.AFAIK, нет серебряной пули для оптимизированного и быстрого кода.

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