• Какие есть хорошие сервисы/книги по которым можно научиться делать отличные сайты на php, наверняка есть такие?

    @IvanOne
    Давайте разберемся! Сайт это стек технологий а именно фронтенд, бэкенд. Php серверный язык программирования освоив его досконально, вы сможете писать серверную часть сайта в этом вам помогут уроки от Специалист`а (курс от МГТУ им Баумена) совет вникайте в них доконца выполняйте все примеры и пока не дослушаете все до последней минуты последнего урока не смотрите в сторону фреймворков. Когда освоите полностью язык фреймворки пойдут с полтычка. Что касается фронтенд htmlbook, wisdomweb ну и прочие ресурсы, а так же курс все от того же Специалист`а по html и css. Удачи)
    Ответ написан
    7 комментариев
  • Как привести integer к float с 2-мя знаками после точки?

    thewind
    @thewind
    php программист, front / backend developer
    sprintf("%.02f", $n);
    Ответ написан
    Комментировать
  • Как обновить данные в таблице без перезагрузки страницы?

    $('form').bind('submit', function(e){
    e.preventDefault();
    form = $(this);
    $.ajax({
                url: handler.php,
                data: form.serialize(),
                type: "post",
                success: function (data) {
                },
                error: function () {}
            });
    });

    data - html код сгенерированный с помощью php.
    js => jQuery => $.ajax
    Ответ написан
    3 комментария
  • Как вставить переменные в sql запрос на php?

    FanatPHP
    @FanatPHP
    Чебуратор тега РНР
    Как вставить переменные в sql запрос на php?

    Только. Через. Плесхолдеры.
    Любой, кто отвечает иначе - тупой нуб, застрявший в прошлом веке и так и не осиливший даже азы программирования.

    Соответственно, тебе нужна библиотека, которая поддерживает плейсхолдеры. Хотя старушку mysql ext можно заставить, но для новичка лучше всего подойдет PDO.

    $sql = "SELECT * FROM mytable WHERE city = ? AND price BETWEEN ? AND ? AND type = 'Продать'";
    $stmt = $pdo->prepare($sql);
    $stmt->execute([$_POST['city'], $_POST['area'], $_POST['price']-50, $_POST['price']+50]);
    $data = $stmt->fetchAll();

    Как соединяться с БД и вообще про PDO читай здесь: phpfaq.ru/pdo

    А твоя ошибка вызвана опечаткой и неправильной обработкой ошибок.
    Во-первых, у тебя в какой-то из запросов передается пустая строка - скорее всего, из-за опечатки
    Во-вторых, если бы в РНР было включено нормальное отображение ошибок, то РНР тебе бы сам ругнулся на эту опечатку.
    В-третьих, если бы ошибки mysql обрабатывались по-человечески, то РНР тоже указал бы на тот конкретный запрос, который оказался пустым. И ты бы не хватался вместо него за первый попавшийся.
    Ответ написан
    1 комментарий
  • Как отловить что было выбрано в выпадающем списке?

    PavelK
    @PavelK
    Тут для начала нужно прочитать про тег form htmlbook.ru/html/form
    а потом про то как получать в php значения от клиента: php.net/manual/ru/reserved.variables.get.php
    как дело пойдёт, прочитайте и про фильтрацию пользовательских значений.

    Как разберётесь с этим, можно будет переходить к JS.
    Ответ написан
    1 комментарий
  • Зачем нужен ООП?

    EvilsInterrupt
    @EvilsInterrupt
    System programming, Reversing Engineering, C++
    Не везде и не всегда нужны классы. Вы верно заметили. НО! Прежде чем принять решение о том, что в конкретном месте кода класс только вредит, нужен профайлер или другие инструменты позволяющие принять такое решение. К примеру в Python словарь значительно выигрывает по скорости чем класс с методами.

    Фишка ООП в том, что человек уже думает классами! Поднимаем голову к небу и видим "Птица летит", другими словами "У объекта "Птица" был вызван метод "Лететь"", но мы так сложно не думаем и для нас это просто "Летящая птица".
    Вспомните детство и моменты когда родители посылали за хлебом. Как это происходило? Возможно это было так: "Объект сын в твое поле ложу объект "Задача" с полями "хлеб", "комод" и "100 рублей", в поле "результат" ложу "Хлеб". Объект сын вызываю метод "Купить"". Не думаю что это было так, мне кажется это было так: "Сын возьми 100 рублей и купи хлеба". В неявном виде обратились к объекту "Сын", вызвали метод "Взять" и передали аргумент "100 рублей" и ожидаем результат вызова в виде значения "Хлеб".

    Попробуйте процедурный подход переложить в нашу естественную жизнь? ;) Попробуйте так общаться, процедурно. Это очень сложно. Потому что человек привык думать объектами! Самолет, кошка, лошадь, дерево и др. Для нас вроде есть концепция "кошка", но конкретная кошка "Масяня" сильно отличается от другой конкретной кошки "Машка".

    Изучая задачу мы прежде всего должны задать вопрос : "Что является условием завершения задачи?" и вторым не менее важным "Что используется при достижении результата?". Вот это "что используется" как правило и есть объекты.
    Ответ написан
    8 комментариев
  • Как нарисовать многоугольник на PHP?

    YardalGedal
    @YardalGedal
    yeah boy
    Прежде чем задать вопрос здесь нужно было подумать - а Вам действительно нужно рисовать многоугольник на PHP? :)
    Ответ написан
    4 комментария
  • Как записать данные из html в MySQL?

    данные в бд можно записать ну как минимум с использованием PHP, если загуглить то html это язык разметки гипертекста и он самостоятельно никак не может передавать данные в бд.
    Ответ написан
    5 комментариев
  • Что можно в коде подправить для снижения нагрузки на сервер! (оптимизация)?

    FanatPHP
    @FanatPHP
    Чебуратор тега РНР
    Бредовый ник, бредовый вопрос, бредовый ответ.
    Модератор, бди!
    Ответ написан
    1 комментарий
  • Что выбрать для изучения и дальнейшей работы?

    Symphony
    @Symphony Куратор тега CSS
    1. Нравится After Effect, изучение+практика = становитесь профессионалом — гребете бабло;
    2. Нравится фронтэнд, изучение+практика = становитесь профессионалом — гребете бабло.
    Что Вы хотите услышать: учи фронтэнд — это будущее, риал круто, нет — афтер круче, лучше в сто раз?
    Ответ написан
    1 комментарий
  • Сколько времени у Вас ушло с момента начала обучения до начала работы?

    mr_T
    @mr_T
    Web-разработчик
    От многого зависит. Если человек гуманитарий, то тяжко придется)
    Если нет багажа знаний по программированию в принципе (какие-то базовые понятия, паттерны, ООП и т.д.), то изучить-то ты изучишь, но толку с этого будет мало.
    Нужно еще понимать, что с созданием сайтов/web-приложений связано еще очень многое помимо знания непосредственно языка программирования: SQL, конфигурация сервера, права на файлы, сессии, HTTP заголовки... Дальше - больше: ORM, CMS/CMF какая-нибудь (а лучше какие-нибудь).
    В общем, PHP сам по себе - всего лишь язык, и нужно знать инфраструктуру этого языка.
    В итоге, отвечая на твои вопросы:
    1) От недели до бесконечности.
    2) Любым доступным. Вышка укажет (но не научит сама по себе), с чего начать. Книги дают основы. Гугл (в частности документация в его выдаче) дает все остальное. Видеоуроками, кстати, ни разу не пользовался, так как по мне быстрее прочитать. А, ну и практикуйся, без практики обучение - бесполезная трата времени.
    Ответ написан
    Комментировать
  • Какой порядок изучения материалов для php программиста?

    Sivkoff
    @Sivkoff
    Web Developer
    Идите в том порядке изучения, который написали.
    После изучения 1, 2, 3 попробуйте сделать что-то свое, а потом устройтесь юниором на работу.
    Работа с более опытными разработчиками даст вам хороший толчок в развитии, а так же опыт работы в команде и умение разбираться в чужом коде.
    Ответ написан
    3 комментария
  • Почему текст в 3-ем столбце ниже?

    aen
    @aen
    Keep calm and 'use strict';
    Контейнеры #right и #center местами поменяйте.

    Вот в такую последовательность:
    <div id="left"></div>
    <div id="right"></div>
    <div id="center"></div>
    Ответ написан
    3 комментария
  • C чего начать фриланс?

    taxigy
    @taxigy
    Если вы хотите быть фрилансером и при этом не быть занятым на фултайме в качестве наёмного работника, то либо у вас должен быть стартовый капитал, либо вам придётся быть фултайм-работником, иначе вы умрёте от голода. Когда вы работаете фултайм, у вас остаётся четыре-пять честных часов в сутки (после девятичасового рабочего дня, поездки на работу и обратно, завтрака, ужина и т.п.), которые вы можете либо посвятить своему развитию в каком угодно направлении. Фриланс — одно из таких направлений.

    Я бы советовал вам, во-первых, всегда держать в уме: вы не можете запихнуть работы больше, чем у вас есть свободного времени. Осознание этого факта даст вам очень сильное преимущество перед другими начинающими фрилансерами, с которыми вам предстоит конкурировать.

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

    Второе, вам необходимо проанализировать свои текущие умения и понять, что вы действительно способны дать бизнесу вашего будущего заказчика. Например, «начальные знания вёрстки» — это нулевая ценность для бизнеса. А способность претворить идеи заказчика в рабочий макет — уже положительная. На эту тему много статей в интернете. Не думаю, что у вас возникнет сложность с тем, чтобы их найти на том же Хабре.

    Третье — сконцентрировать всё, что вы уже сделали или делаете, и подготовить портфолио и лаконичный хедлайн, читая который, ваш заказчик заинтересуется вами и захочет работать. «Умею верстать» — хреновый хедлайн. «Создаю потрясающий дизайн» — уже что-то интересное. Не волнуйтесь о качестве или соответствии реальности — вам придётся экспериментировать. Кстати, о реальности: неплохо взять чуть выше, чем вы можете сейчас. Так вы создадите себе стресс, а как извесно, человек развивается в условиях стресса. Если вы останетесь в комфортных для себя рамках, годы спустя вы себе этого не простите.

    Следующий шаг — это, ура, наконец-то искать заказчика. Зарегистрируйтесь на Elance, oDesk, Freelancer.com, Outsource.com (возьмите у вашего друга-фрилансера реферальные ссылки, вам обоим будет от этого плюс). Это не самые лучшие биржи, но на них водятся интересные проекты. Вообще, биржу следует расценивать как стартовую площадку для накопления полезных контактов. Пока вы никому не нужны, и у вас нет друга-министра, который за откат заказал бы вам вёрстку, вам придётся практиковаться в том, чтобы захватить внимание человека, перед которым такими же прекрасными пропоузалами машут пакистанцы и индусы. О том, как пробиться сквозь стену дешёвых претендентов, не сбавив при этом в собственной ценности, и получить первый заказ, я могу рассказать подробно отдельно, может быть, лично. Это долгая история. Например, у меня это заняло пять месяцев очень упорного труда, и я до сих пор не уверен, что то время, которое я вложил, когда-то может окупиться.

    Развивайтесь как фрилансер. Это очевидно, но об этом легко забыть. Вы ежедневно развиваете свои способности общаться или не общаться с людьми, готовить еду и варить кофе, но это не имеет значения. По-настоящему имеет значение ваш профессионализм — и этим нужно заниматься. Ежедневно анализируйте свои действия, ошибки, возможности, сильные и слабые стороны. Отметайте активности, которые забирают ваше время зря. Не бойтесь отказаться от проекта, если он даже на $10 дешевле, чем тот минимум, на который вы рассчитываете (кстати, установите себе этот уровень в самый первый день).

    Познакомьтесь с другими фрилансерами. Зарегистрируйтесь на freelancing.stackexchange.com/, читайте, задавайте вопросы. Вы удивитесь, как много людей проходят через одни и те же грабли. Вы будете смеяться над тем, что, завалив проект, вы на следующий день увидите вопрос на тему «сложного клиента» или «неконтролируемого увеличения скоупа», которые пережили буквально вчера. Смеяться и плакать, а потом вставать и идти дальше. Когда (или если) вы были фултайм-работником, вас страховали коллеги и вся цепочка руководителей над вами, несмотря на то, что вы этого не понимали или, может быть, даже не чувствовали. Теперь вы один на один с очень агрессивной средой, и очередная неудача — это нормально, разница лишь в том, как вы её ощущаете.

    Заведите себе инструментарий для трекинга времени, управления задачами и ежедневными рутинными делами, отберите лучшие и сократите их количество до одного-двух. Развивайте в себе способности администрирования и управления, учитесь вести переговоры, учитесь строить предельно короткие и точные фразы, когда объясняете суть своей работы или своё видение проекта или мельчайшей его части. И не забывайте выходить из дома и общаться с людьми — очень легко застрять в своём кубике, испортить себе режим сна и пищеварение, но вы же не для этого идёте в фриланс, верно?

    Ну и напоследок. Подумайте о том, в каком месте, в какой природе, в каком климате вы хотите жить, что должно быть видно из вашего окна. Посчитайте, какой кэш флоу вам нужен, чтобы этого достичь, — поздравляю, это одна из самых главных отметок на шкале вашего роста. Разделите ожидания на десять — это ваш план на ближайший год. Умножьте 200 рабочих дней на ваши 4–5 часов — это ваш временной бюджет. Разделите первое на второе — это ваша часовая ставка.

    Успехов! Чем больше людей будут успешными фрилансерами, тем лучше для всех. У вас все шансы попячить ваших друзей, которые работают в крупной компании на средней позиции и участвуют в укреплении внутрикорпоративной безответственности.
    Ответ написан
    3 комментария
  • Избитый вопрос, но как начать фрилансить?

    @finall2
    Изначально был такой-же страх.
    Но потом поработал в небольшой веб-студии программистом.
    Приходит заказчик и говорит "Сделайте это и это" и не важно - умеешь ты или нет ;)
    Не сделаешь - зарплату не получишь.
    Так и здесь, если гугл не помогает никак, то в конце концов всегда можно договориться и объясниться. Удачи
    Ответ написан
    Комментировать
  • Что выбрать во фрилансе: фронтенд, бэкенд или мобайл?

    @Gettoheaven
    прежде чем идти на фриланс нужно же сначала что то уметь...
    Ответ написан
    Комментировать
  • Что нужно знать помимо javascript для фриланса (в частности на oDesk)?

    Petroveg
    @Petroveg
    Миром правят маленькие с#@&ки
    Имеет ли смысл рассчитывать на работу js-специалиста (т.е. в случае если навыки js используются значительно интенсивнее других)?

    Безусловно

    Возможно ли это на фрилансе?

    Безусловно

    Что лучше учить в связке с js?

    Учить CSS, HTML, SVG, фреймворки, и разного рода интерпретаторы (HAML etc.), препроцессоры (SASS, Stylus etc.).

    Имея базовые знания по CSS, HTML стоит ли нацелится на них и периодически использовать js?

    Без этих знаний никуда.
    Пример: анимация в CSS быстрее, используем её. Для старья используем таймеры.
    Пример: для хорошего соответсвия UX используем элементы формы, из состояния, события.

    Или лучшем будет изучение frontend фреймворков? Необходимы ли при этом будет в дальнейшем много верстать? Насколько перспективна эта сфера деятельности?

    Очень важно. Написать качественный код для полного покрытия ситуации могут немногие. Можно стараться стать таким, но для начала стоит использовать работу таких людей.

    Если использовать github-аккаунт как часть портфолио, что наиболее привлекательно будет в нем для работодателя?

    Примеры решения конкретных задач. А разве в гит можно выложить что-то неконкретное?))

    Имеет ли смысл довести какие-то свои задумки до конца перед началом поиска работы, или лучше начать сразу а уже стабильно оплачиваемые заказы могут пойти в портфолио?

    Нет предела совершенству. Продавать нужно начинать до окончания работ. Так же и в работе — не нужно откладывать поиск вакансии до момента, когда вы постигнете вселенную.
    Во-первых, такого никогда не случится.
    Во-вторых, ваши знания могут быть уже достаточны для части работодателей.

    Возможно ли получить помощь\поддержку в начале пути фрилансера от человека активно этим занимающемся?

    Возможно. Но на условиях подмастерья. Будьте готовы к этому.

    Ну и напоследок чисто-субъективные вопросы на которые я не жду аргументированного ответа, а просто совета, основанного на жизненном опыте:
    Стоит ли нацеливаться на javascript или лучше менять акцент (или вовсе бросать js) на другой язык?

    Ваще непонятный вопрос. Если вы категорически не согласны с концепцией JS — бегите прочь от него. Если всё понятно — зачем спрашивать?

    Стоит ли уповать на фриланс или лучше искать обычную работу?

    Фриланс и есть обычная работа. Вопрос абсолютно не связан с программированием или языком программирования.
    Ответ написан
    2 комментария
  • Как организовать защиту от парсинга сайта?

    @starosta6123
    1. Сайт изначально предназначен для публикации, то есть он открыт.
    2. Если вы не хотите чтобы информация была открыта, не публикуйте.

    Из 1 пункта следует, что нет достаточных средств для защиты от парсеров.
    Вопрос только в том, на сколько вы готовы и можете усложнить жизнь для парсеров.
    А нужно ли это? Может вы - "неуловимый Джо"?
    Все что может прочитать и распознать человек (а ведь именно для людей и делается сайт?) может быть воспроизведено. В части, где парсинг может быть автоматизирован, он будет автоматизирован.
    Сейчас существуют мощные парсеры Яндекса и Гугла. Если они ваш сайт не смогут разобрать, то и в индексе его не будет, значит полезная информация не дойдет до конечного пользователя.
    А тот, кто захочет, ее скопирует, если информация очень нужна. Если даже вы представите в виде мозаики из картинок и кусков, даже если зашифруете, но информация на экране должна все равно быть читабельной, а значит простой принтскрин и распознавание в FineReader будет быстрее, чем вы напишите защиту от него...

    Бросьте это занятие!

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

    И еще раз бросьте это!

    Я тоже когда-то думал об этом, но ни к чему не пришел. Всякая защита усложняет систему и увеличивает количество ошибок. Пользователь быстрее уйдет с вашего сайта, только потому что из-за ошибки в скрипте полезные данные не получит.

    Последний совет: бросьте это!

    Единственное что может вам помочь, это не раскрывать полностью всю информацию о предмете, или разделить на несколько частей, но при этом не должно быть неудобства для посетителя. К примеру, скройте "количество зубцов в шестеренке", любую ключевую информацию, без которой "самолет не взлетит".

    А если хотите поиграться, то пришла в голову идея: перемешивание по определенному алгоритму текста, который потом восстанавливается, применение стилей для скрытия "фальшивых" слов или фраз. Например, задать стиль, который скрывает каждое второе предложение или слово. Но к сожалению, это ломается на ура! Но доставит радости для взломщиков :-)

    Извините, за столь большой сумбур!

    1. Динамические запросы. Ну доставят какую-то головную боль для взломщика, но это не так сложно, как кажется.

    2. Верстка. Не знаю про бан от поисковиков, но это тоже ломается. Просто убираете теги и все. Просто в парсер добавляется "умный" фильтр. Можно конечно где-то картинку заменить фоном, или часть текста картинкой, но и на это можно сделать разборщик.

    3. Блокировка по IP не прокатит, так как могут пострадать реальные люди, достаточно применять динамический IP.

    А вообще, если хотите спастись от простых парсеров, то комплекс мер может помочь. Так же могу натолкнуть на идею, того, что парсеры обычно очень активны, и по количеству запросов с одного IP, по USER_AGENT, и другим меткам, а так же по отсутствию javascript, по обработке тега <МЕТА> redirekt.info/article/redirekt-na-html-s-zaderzhko... (отложенный редирект) и другим признакам. Можно запихнуть скрытую картинку (style="display: none"), большинство парсеров ее могут дернуть (зависит от настроек).

    В общем, можно поставить задачу в другом ключе: "Расстановка ловушек для парсеров". То есть ловить на том, чего обычные люди и браузеры делать не будут. Например, заполнять "скрытое поле пароль". Удачные ловушки дадут вам возможность выявить подставных, но лучше делать несколько проверок, а то можно и реального пользователя забанить. А я бы не стал банить, а сливал бы немного или частично измененную инфу. Эта инфа может стать маркером для выявления того, кто действительно желает с вас "слить".

    Все, удачи!
    Ответ написан
    4 комментария
  • Вы в браузере набрали адрес сайта, нажали Enter. Расскажите максимально подробно о технических процессах происходящих далее?

    Deerenaros
    @Deerenaros
    Программист, математик, задрот и даже чуть инженер
    Действительно, уважаемый. Это слишком. Вряд ли я затрону все тонкости, но попробую наметить примерный путь:

    0) Пользователь вбивает в адресную строку браузера адрес сайта (нажимая клавиши на клавиатуре, которые замыкают определённую дорожку в матрице, по которой происходит определение нажатой клавиши, что через шину USB в какой-то момент передастся OS, где это поймает HID-драйвер и вызовет определённое прерывание, что OS передаст как событие/или_ещё_как в программу, которая вызовет соотвествующую функцию из API менеджера окон, которая изменит содержимое строки и в результате когда-то будет перерисован UI-элемент, а если нажат был Enter, то начнётся следующее).
    1) Браузер вытащит из input'а строку с запросом и посмотрит, похоже ли это на адрес. Если да, то добавит недостающие уточнения (например, http или file протокол, порт и подобные довольно стандартные вещи). Если нет - то скорее всего создаст запрос в поисковую систему, установленную по умолчанию (я более не буду опускаться до таких бессмысленных деталей, как вызовы API-функций, иначе я буду набирать это сообщение ОЧЕНЬ долго). В любом случае на выходе мы по сути получим URL, который надо загрузить. Протокол file:// мы рассматривать не будем, ftp далеко не везде есть, https:// на не хватит вечности, так что остановимся на http, который по сути есть tcp/ip по умолчанию на 80 порту с определённым форматом общения.
    2) Окей, url есть. Теперь нам нужен адрес, к которому обращаться. Так как http это tcp/ip - нам нужен ip адрес. Здесь нам помогают dns-сервера. Обычно, нормальный провайдер устанавливает у себя кэш-сервера dns, которые не обращаются по стопицот раз за vk.com к ответственному серверу com-зоны. Давайте не будем отвлекаться на то, как происходит там общение, если что - вот (вики тем хороша, что часто содержит внизу релевантные ссылки). Скажу лишь то, что на выходе мы получаем ip адрес(а).
    3) Имея адрес мы можем запросить страницу. Собственно, всё что после первого слэша - это как-бы параметры для http-сервера: какую именно страницу запрашивать, он всё же не телепат. Конечно, можно было бы немного схитрить и отправить читать про tcp/ip, но ведь существует и shared-hosting. Ограничемся лишь его упоминанием. Собственно, по полученному адресу отправляется GET запрос, который и обрабатывает сервер, находящийся по полученному IP-адресу.
    4) Сервер же, получив адрес, начинает распарсивать строку, медленно вытягивая нужные данные из баз-данных и настроек, выполняются сотни скриптов, иногда делается ещё не одна сотня различных запросов на другие сервера (здесь и разного вида метрики и разного вида HADOOP и т.д.). Пройдя сквозь скрипты и темплейторы в самом конце мы получаем html-страницу, готовую к употреблению. Её-то сервер и отправит в ответе (после заголовков, конечно).
    5) Вот и началось самое интересное. Получив html страницу браузер начинает жутко надругаться над CPU, HDD и GPU, попутно сжирая тонны RAM и мусоря в swap. Виной всему нереальные для полного соблюдения стандарты от небезызвестной w3c.org. Для облегчения многие делают костыли, вроде webkit, а некоторые и вовсе забивают на него и пилят свой стандарт с преферансом и картёжницами (впрочем, в последнее время становиться лучше). Здесь снова начинаются сотни вызовов API ОС, windows manager'а и прочих библиотек, вроде boost, qt или libpng. В ходе работы в RAM строится макет, по которому потом строится нечто вроде PDF (тоже сильно векторный), что, потом, обрабатываясь быстрыми шейдерами на GPU, выдаётся на экран. Опять же, многое пропущено, но вряд ли кому-либо, кроме парня в свитере с оленями, действительно интересно, как работает GDI, DirectX или OpenGL.
    6) Ах да, мы же забыли про тысячи js-скриптов, миллионы картинок и анимации с котиками, а также о таких дополнительных плюшках, как flash-player или java-weblets. В кратце, что js, то и flash и java - это виртуалка, со специальной архитектурой. Они, виртуалки, конечно разные (хотя flash и js довольно похожи, ещё бы - ECMAScript один и тот же). JS - самый интегрированный внутрь браузера, он же и самый медленный чисто визуально (ибо последние два имеют доступ к быстрому GPU), хотя самый быстрый в попугаях. Второй постепенно вымирает и представляет из себя, так же как и третий специальную shared-библиотеку, о которой браузер как-нибудь узнал и которой скармливает специальное содержимое помечанное специальным тегом html. Третий уже почти умер и встречается лишь изредка или в каком-нибудь энтерпрайзед со страшным legacy-базой. Ну здесь из сылок разве только гугл. Ибо сколько всего - даже не сообразишь. Да и вообще, эта тема ещё скучнее GDI, DirectX и OpenGL и к свитеру с оленями требуются ещё очки с толстенными стёклами, дающие стопицот к терпению и задроству над матаном. Если в кратце, то в случае JS, всё что было загружено в память и не думает выгружаться и формирует этакое дерево - DOM, над которым с помощью специального API и происходят модификации. При этом, перед тем как исполниться, весь JS-код компилируется, в нативный для VM байт-код. То же самое в общем-то и со вторым и третьим, разве только они не имеют доступа к DOM и организовать его - дело тех ещё костылей. Ах да, забыл ещё про Silverlight (или как оно там пишется), который сдох, не успев родиться. Так же как и Java, жив в серьёзном энтерпрайзе, не поскупившийся не "дешёвую" поддержку MS.
    7) Ну... А дальше пользователь нажимает на нужную гиперссылку и всё по новой.

    За кадром остались такие костыли, как ajax, websockets и прочая асинхронная ересь. С ней всё в миллионы раз сложнее. И к очкам со свитером потребуется ещё и... а чёрт их знает, что они там ещё носят. Ну да ладно, я искренне завидую тем парням (и девушкам), которые разбираются во всей этой машине. Целиком. Ибо это лишь верхушка айсберга. Разбавленная не лучшей памятью и ужасным гуглом.

    P.S. Не бейте сильно за грамматические и синтаксические ошибки. Спеллчекер приказал долго жить, да и 5 утра как никак.

    UPDATE
    На хабр выложили неплохой перевод дающий некоторое представление, как браузер ругается над памятью и процессором. Хотя и весьма поверхностное,
    Ответ написан
    26 комментариев
  • С чего нужно начать изучение PHP, если не знаешь особо англ. язык?

    Bandicoot
    @Bandicoot
    Вась-программист
    Документация уже давно переведена на русский: www.php.net/manual/ru
    Ответ написан
    1 комментарий