Pull to refresh

Comments 12

с какой такой ссылкой на демо и каких таких подобных комментариев не бывает? извините, ничего не понял.
Если бы была ссылка на демо, то верхнего комментария не было бы.
добавил ссылку на демонстрационный пример, описанный в топике, а также на рабочий пример
и все-таки генерить html на php не самый лучший вариант. JSON вам в помощь… Небольшой запрос к серверу json в ответ. Опираемся на этот ответ, строим диаграмму. И ничего лишнего. Никакого php внутри html. Все чисто и красиво, сервер обменивается с клиентом только данными. К слову так работает большинство библиотек для построения графиков.
а никакого php внутри html и нет. json — красивый формат и нами само собой часто применяемый в задачах подобной той, которую очевидно вы имели ввиду (когда нужно передать клиентскому скрипту только данные). однако, конкретно в данном случае мы имеем дело с стандартным сайтом, который отдаёт пользователю html страницы, в которые необходимо встроить графику (без дополнительного запроса). вариант передать данные для клиентского скрипта в одном (вместе с html) ответе сервера по-моему очевидный и проще чем делать дополнительный запрос для json. всё это если я правильно вас понял конечно же.
json не просто красивый формат, он очень удобен, когда нужно куда-то передать данные. Вы формируете много js объектов в виде строк, этого можно легко избежать если сформировать исходный массив таким образом, чтобы при преобразовании из json в js сразу получился необходимый объект. Мне кажется, в данном случае три строки дополнительного запроса к серверу экономят время на конкатенации строк на стороне сервера, да и код выглядит чище. Впрочем, это мое мнение, оно может не совпадать с мнением большинства, я как-то привык уже оперировать ООП подходом в создании сайтов и не редко усложняю простые вещи, бывает и такое :)
теперь я понял. возможно ваш подход в нашем случае действительно уместен. красоты коду придаст однозначно. но вопрос по скорости, здесь надо экспериментировать. попробуем. спасибо.
В свое время игрался с Raphael для рисования диаграмм. В процессе понял, что никакого упрощения библиотека не приносит в процесс разработки. Возится с ней стоит только тогда, когда требуется поддержка IE6-8. Иначе проще написать все на чистом Canvas или с помощью библиотеки canvasquery.com, которая является всего-лишь удобной оберткой над родным API (позволяет использовать chaining наподобие jQuery, добавлять обработчики событий и прочее):
cq(640, 480).drawImage(image, 0, 0).fillStyle("#ff0000").fillRect(64, 64, 32, 32).blur().appendTo("body");
На gRaphael все проще:
window.onload = function () {
                var r = Raphael("holder");                
                var pie = r.g.piechart(
120, 140, 100,
[35349.7,41085], 
{legend: ["%%.% – Расход (35349.7р.)", "%%.% - Приход (41085р.)"], 
legendpos: "east"});
                pie.hover(function () {
                    this.sector.stop();
                    this.sector.scale(1.1, 1.1, this.cx, this.cy);
                    if (this.label) {
                        this.label[0].stop();
                        this.label[0].scale(1.5);
                        this.label[1].attr({"font-weight": 800});
                    }
                }, function () {
                    this.sector.animate({scale: [1, 1, this.cx, this.cy]}, 500, "bounce");
                    if (this.label) {
                        this.label[0].animate({scale: 1}, 500, "bounce");
                        this.label[1].attr({"font-weight": 400});
                    }
                });
};

Ну и демо: cash.pihel.jino.ru/?act=analiz
Это только в случае, если внешний вид диаграммы не принципиален. А если понадобится точное соответствие с дизайном, то на допиливание gRaphael понадобится больше времени, чем на написание с нуля.
Согласен. Обычный Raphael представляет всё же более базовый функционал, с помощью которого нам показалось проще добиться «точного соответствия дизайну». Частично согласен также и с мнением wa_Nadoo, в том что возможно ещё проще на «Canvas или с помощью библиотеки canvasquery.com». Однако в нашем случае важна была скорость разработки (как можно быстрее получить первый рабочий прототип) и кроссбраузерность проекта (IE 6-8 в т.ч.). В этих условиях приняли решение положиться на Raphael и не пожалели.
Sign up to leave a comment.

Articles