Недорогой но высококачественный сайт. Такое может быть? Да. У нас может быть всё. Достойное качество по доступной цене.
С точки зрения нашей студии создание сайта недорого значит, прежде всего, отменно, технологично и потом уже - недорого.
Удаленная форма работы с клиентами оптимизирует наши расходы и мы можем делать сайты по всему миру. Вам совсем не нужно приезжать к нам. Мы сэкономим Ваше время и средства.

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


  • Потребители становятся нетерпеливыми, когда загрузка страницы может занять больше времени, чем две секунды. 47 процентов пользователей ожидают загрузку не более двух секунд, что составляет значительную часть.
  • Интернет лояльность покупателей зависит от скорости загрузки страниц, особенно это важно для высоких расходов покупателей.
  • Покупатели часто отвлекаться, когда приходиться ждать пока загрузится страница. 14 процентов уходят в другие места, а 23 процентов остановят покупки или просто уйдут.
  • 79 процентов опрошенных клиентов виртуальных магазинов, которые испытывают дискомфорт визита, будут реже посещать этот виртуальный магазин, следовательно, совершать покупки. А 64 процентов будет просто покупать в другом интернет-магазине.
  • Мобильный телефон является новым инструментом торгового канала, и ее эффективности является ключевой для принятия потребителем. Хотя лишь 16 процентов потребителей покупали через мобильный или смарт-телефонов, потребители заинтересованы в использовании этих приборов для научных исследований и покупки в будущем. Одна треть потребителей, посещающих магазин через свои смарт-телефоны, будут так поступать и в будущем.

  • Книга  Реактивные веб-сайты  содержит большое количество теоретического материала о клиентской оптимизации, но в значительной мере сделан акцент на описании прикладных методов оптимизации, а также на их квинтэссенции автоматизации. Большая часть материала этой книги посвящена именно внедрению клиентской (и частично серверной) оптимизации при разработке веб-сайтов, а почти вся седьмая глава  приложению для автоматического ускорения сайтов.
    Кроме того, в этой книге мы немного заглянули в будущее и постарались описать те аспекты производительности, которые будут актуальны буквально через год-другой, когда большинство браузеров станут настолько быстрыми, что обычные методы оптимизации потеряют свою первоначальную эффективность. О будущих перспективах оптимизации рассказывается в шестой главе.

                        


      Selectors. Разгоняем jQuery. Практическое приложение. Оптимизация структуры веб-страниц

      Selectors
      Кэш
      События
      Стоит начать с функции $, она принимает два параметра: первый – селектор, второй – контекст. Хотя контекст обычно опускают, в последствие будет показано, как им грамотна пользоваться.

      Простой селект
      Самый простой вариант это выбор по id, имени тега и имени класса.

      $("#id")
      $("tag")
      $(".class")
      Неслучайно они расположены именно в такой последовательности: они идут по сложности алгоритма выборки. В первом случаи вызов функции эквивалентен вызову:
      document.getElementById("id");

      Поскольку предполагается что id уникальный то поиск проходит очень быстро, и если на странице есть два элемента с таким id то найден будет только первый. Хотя в IE и тут накосячили и до 7 версии включительно в случаи отсутствия элемента с таким id он вернет элемент, у которого совпадает атрибут name.

      Во втором случае тоже все относительно просто:
      document.getElementsByTagName("tag");

      Получили все ноды с таким именем из документа, и все готово. И на удивление никаких косяков, если не учитывать что при запросе getElementsByTagName("*") IE вернет и комментарии тоже.

      В третьем случае, если есть возможность, работу перехватывает:
      document.getElementsByClassName("class");
      (Таблицу поддержки этой функции в браузерах можно посмотреть на quirksmode.org)

      Эту функцию поддерживают еще не все браузеры. Для остальных применяется совсем другой алгоритм: нужно получить абсолютно все ноды, потом обойти их циклом, проверяя имена классов, и если совпали, то добавить в массив результата.

      var nodes = document.getElementsByTagName("*"), result = [];
      for (var i=0; i<nodes.length; i++){
      if(" " + (nodes[i].className || nodes[i].getAttribute("class")) +
      " ").indexOf("class") > -1)
      result.push(nodes[i]);
      }

      Какой метод использовать определяется в самом начале при подключении библиотеки.

      Селекст через querySelectorAll
      Но это все подходит только для элементарных селекторов. А на практике приходится обычно использовать намного более сложные конструкции. И для них в современных браузерах FireFox 3.0, Safari 3.2, Opera 9.5, в том числе и в IE8 появились функция querySelector и querySelectorAll. Они, соответственно, предназначены для поиска одной или нескольких нод по CSS3-селекторам. Если браузер клиента поддерживает эту функцию, то все, о чем написано в прошлом пункте – отпадает и поиск происходит через querySelectorAll.

      $("#id .class tag")
      В лучшем случае селектор будет обработан именно querySelectorAll, потому что он написан по правилам CSS3. Но так возможно не со всеми селекторами, jQuery поддерживает ряд селекторов которые не входят в CSS3 такие, например, как :visible.

      $("#id .class tag:visible")

      Такой селектор выдаст ошибку в функции querySelectorAll, и селектор будет перенаправлен в поисковый движок Sizzle, где строка будет разбита на простые селекторы и превратится, по сути, в несколько разных поисков, в котором каждым следующим контекстом является предыдущий селектор.

      $(document).find("#id").find(".class").find("tag").filter(":visible")
      Скорость этого метода поиска напрямую зависит от величины DOM дерева, чем оно больше – тем медленнее, но е. можно значительно увеличить, написав селектор раздельно.

      $("#id .class tag").filter(":visible")
      При этом querySelectorAll выберет все ноды, а Sizzle разберется с ":visible"

      По поводу псевдо-селекторов возникает также очень интересный вопрос: CSS3 поддерживает несколько видов псевдо-классов такие как :nth-of-type/:nth-child/:parent/:not/:checked , jQuery имеет свою реализацию этих селекторов для браузеров, не поддерживающих querySelectorAll, или для браузеров, в которых querySelectorAll не поддерживает данный селектор, но эта реализация иногда отличается. Для примера возьмем псевдо-класс :nth-of-type и выберем все четные дивы, а из них все нечетные.

      document.querySelectorAll("div:nth-of-type(even):nth-of-type(odd)")
      // Safari/FireFox:0 IE/Opera:N/A
      $("div:nth-of-type(even):nth-of-type(odd)");
      // Safari/FireFox:0 IE/Opera:All
      $("div:even:odd"); // All: вернут 1,5,9 дивы

      Первых два примера работают одинаково и вернут либо 0, если отработала функция querySelectorAll (это касается первого примера), либо все элементы, потому что их обработал Sizzle (это особенность реализации выражения «:»), а третий вернет 1, 5, 9 и тд. элементы, а значит селекторы отрабатывали в три прохода, сначала из всего дом дерева были выбраны все дивы, потом из них были выбраны все неч.тные, а потом из оставшихся были выбраны все чётные.

      jQuery так же имеет набор псевдо-селекторов который не входят в CSS3 и обслуживаются только Sizzle’ом :visible/:animated/:input/:header. Их лучше выделять отдельно так как они могут сильно замедлить выборку. Так например было с селекторами :visible/:hidden в версии 1.2.6, для того чтобы узнать видимый элемент или нет надо было подняться до самого верха по DOM-дереву проверяя атрибуты display и visible каждого родителя (http://mabp.kiev.ua/2009/02/07/accelerates-selectors-in-jquery/).

      $("div").filter(":visible")
      Псевдо-классы используемые для поиска элементов формы такие как :radio тоже имеют некоторое преимущество если не используется querySelectorAll в противном случае CSS3-селектор input[type=radio] работает быстрее

      Сложенный селект
      Сложенный селект это когда нам надо выбрать группу из двух или более разных селекторов, например все дивы у которых класс равен A, B и C

      Это можно сделать двумя способами
      $(".a,.b,.c")
      выбрать все сразу
      $(".a").add(".b").add(".c")
      или по одному.

      При этом если задействована функция querySelectorAll, то первый быстрее второго в четыре раза, а если нет, то второй в два раза быстрее первого.

      Если уже заговорили про классы, их можно искать, как любые другие атрибуты, например, если надо найти все классы, имена которых начинаются на "my" можно сделать так
      $("[class^=my]")
      а не городить логику с использованием add, тем более что такой способ поддерживается querySelectorAll (http://mabp.kiev.ua/2009/02/21/testing-productivity-jquery-selectors/).

      Неправильный селект в контексте
      На сайте tvidesign.co.uk в одной очень популярной статье «Improve your jQuery – 25 excellent tips» написано, что селект лучше делать в контексте и приведен вот такой пример:
      $('#listItem' + i, $('.myList'))
      Рассмотрим пример подробнее: контекст это то, где ищут селектор, значит пример можно переписать в более наглядную но менее читаемую форму
      $($(".myList")).find("#listItem")
      При этом контекст от первого поиска будет являться document.
      $($(".myList",document)).find("#listItem")
      Еще раз перепишем согласно формуле.
      $($(document).find(".myList")).find("#listItem")
      И наконец, раскроем скобки
      $(document).find(".myList").find("#listItem")
      Что же получается: мы выполняем дорогостоящую операцию поиска по имени класса (по всему DOM-дереву в худшем случае) для того, чтобы упростить и без того самую простую операцию поиска по id.

      Правильный селект в контексте
      Правильно делать с точностью да наоборот. В контекст надо указывать id элемента.
      $(".class",$("#id"))
      Однако можно не передавать в контекст jQuery объект, вполне достаточно.
      $(".class","#id")
      Это можно переписать как.
      $("#id").find(".class")
      Можно еще больше ускорить работу, если искать вот таким способом:
      $(document.getElementById("id")).find(".class")

      Но это, скорее всего, будет уже плохим тоном. Хотя поэкспериментировать интересно, что если вместо getElementById взять querySelectorAll
      $("div",document.querySelectorAll("#id"))
      Это примерно тоже самое, что и
      $("div",[document.getElementById("id")])
      Не прироста производительности ни красоты кода из этого не получить, поэтому советую в контекст передавать что-то простое вроде id или при использовании псевдо-селекторов обрабатываемых Sizzle’ом передавать их в селектор а все остальное в контекст
      $(":visible","input[type=checkbox]")
      Раз уже пошла речь о псевдо-селекторах, то
      $(":checkbox")
      быстрее чем
      $("input[type=checkbox]")
      без использования querySelectorAll и наоборот.

      Cложный селест
      Часто возникает задача найти всех потомков одного родителя, если нам известно, что все потомки являются непосредственными, то есть детьми, то на этом можно сэкономить. Конечно же, лучше всего было бы написать правильный селектор
      $("#id > div")
      Но если выборка уже есть, то будем использовать ее как контекст. Как мы уже выяснили, поиск в контексте происходит при помощи функции find
      $("#id").find("> div")
      Но find очень дорогая функция, она просматривает абсолютно всех потомков контекста, поэтому лучше использовать функцию children, она просматривает только непосредственных потомков.
      $("#id").children("div")

      Есть еще ряд функций поиска и манипуляций, которых стоит избегать без крайней необходимости это: find, closest, wrap, wrapInner, replaceWith, clone. Стоит заметить, что wrapAll сюда не входит (http://mabp.kiev.ua/2009/03/29/jquery-profiling/).

    По материлам с сайта speedupyourwebsite.ru

       Почти всегда целью создания сайта является получение прибыли, которая в свою очередь, зависит от его внешнего вида. Статистика говорит, что около 94% людей, при выборе товара, сначала обращают внимание на упаковку, а потом уже на её содержимое. И если эта упаковка не привлекательная и безвкусная, мало кто обратит на нее внимание, и, соответственно, товар не будет пользоваться спросом.
       В случае с интернет, “упаковкой” выступает ваш сайт, а “товаром” - его контент. Если сайт выглядит непривлекательно, то каким бы ценным и нужным не было его содержимое, люди будут обходить его стороной. Наша задача - сделать ваш сайт привлекательным и удобным, чтобы люди чувствовали себя уютно и комфортно, чтоб они возвращались к вам еще и еще. Соответствие между ценой и качеством вас, несомненно, порадуют.
    .
       Мы делаем сайты для бизнеса, а не красочную картинку, которая увешена тяжеловесными флэшами и огромными фотографиями.
       Пользователя, когда он попадает на абсолютно любой сайт, прежде всего интересует информация, затем, как реализовать на этом сайте полученную информацию, чтобы было удобно и просто (юзабилити), подбор цветовой гаммы, расположение блоков на странице и многое другое.

       Перед тем, как заказывать создание сайта, рекомендуем прочесть статью А зачем мне (нам) сайт? или Что нужно знать заказчику сайта
    Да и вообще, обратите внимание на раздел Статьи о продвижении сайта и бизнеса там вы найдёте ответы на многие вопросы.