Javascript.RU

Умное Кеширование и Версионность в Javascript/CSS

Подключая внешние CSS и Javascript, мы хотим снизить до минимума лишние HTTP-запросы.

Для этого .js и .css файлы отдаются с заголовками, обеспечивающими надежное кеширование.

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

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

Самый простой способ кеширования статических ресурсов - использование ETag.

Достаточно включить соответствующую настройку сервера (для Apache включена по умолчанию) - и к каждому файлу в заголовках будет даваться ETag - хеш, который зависит от времени обновления, размера файла и (на inode-based файловых системах) inode.

Браузер кеширует такой файл и при последующих запросах указывет заголовок If-None-Match с ETag кешированного документа. Получив такой заголовок, сервер может ответить кодом 304 - и тогда документ будет взят из кеша.

Выглядит это так:

Первый запрос к серверу (кеш чистый)
GET /misc/pack.js HTTP/1.1
Host: javascript.ru

Вообще, браузер обычно добавляет еще пачку заголовоков типа User-Agent, Accept и т.п. Для краткости они порезаны.

Ответ сервера
Сервер посылает в ответ документ c кодом 200 и ETag:

HTTP/1.x 200 OK
Content-Encoding: gzip
Content-Type: text/javascript; charset=utf-8
Etag: "3272221997"
Accept-Ranges: bytes
Content-Length: 23321
Date: Fri, 02 May 2008 17:22:46 GMT
Server: lighttpd
Следующий запрос браузера
При следующем запросе браузер добавляет If-None-Match: (кешированный ETag):

GET /misc/pack.js HTTP/1.1
Host: javascript.ru
If-None-Match: "453700005"
Ответ сервера
Сервер смотрит - ага, документ не изменился. Значит можно выдать код 304 и не посылать документ заново.

HTTP/1.x 304 Not Modified
Content-Encoding: gzip
Etag: "453700005"
Content-Type: text/javascript; charset=utf-8
Accept-Ranges: bytes
Date: Tue, 15 Apr 2008 10:17:11 GMT

Альтернативный вариант - если документ изменился, тогда сервер просто посылает 200 с новым ETag.

Аналогичным образом работает связка Last-Modified + If-Modified-Since:

  1. сервер посылает дату последней модификации в заголовке Last-Modified (вместо ETag)
  2. браузер кеширует документ, и при следующем запросе того же документа посылает дату закешированной версии в заголовке If-Modified-Since(вместо If-None-Match)
  3. сервер сверяет даты, и если документ не изменился - высылает только код 304, без содержимого.

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

Общий подход для версионности - в двух словах:

  1. Во все скрипты добавляется версия (или дата модификации). Например, http://javascript.ru/my.js превратится в http://javascript.ru/my.v1.2.js
  2. Все скрипты жестко кешируются браузером
  3. При обновлении скрипта версия меняется на новую: http://javascript.ru/my.v2.0.js
  4. Адрес изменился, поэтому браузер запросит и закеширует файл заново
  5. Старая версия 1.2 постепенно выпадет из кеша

Дальше мы разберем, как сделать этот процесс автоматическим и прозрачным.

Жесткое кеширование - своего рода кувалда которая полностью прибивает запросы к серверу для кешированных документов.

Для этого достаточно добавить заголовки Expires и Cache-Control: max-age.

Например, чтобы закешировать на 365 дней в PHP:

header("Expires: ".gmdate("D, d M Y H:i:s", time()+86400*365)." GMT");
header("Cache-Control: max-age="+86400*365);

Или можно закешировать контент надолго, используя mod_header в Apache:

Header add "Expires" "Mon, 28 Jul 2014 23:30:00 GMT"
Header add "Cache-Control" "max-age=315360000"

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

Большинство браузеров (Opera, Internet Explorer 6+, Safari) НЕ кешируют документы, если в адресе есть вопросительный знак, т.к считают их динамическими.

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

P.S А вот Firefox кеширует адреса с вопросительными знаками..

Разберем, как автоматически и прозрачно менять версии, не переименовывая при этом сами файлы.

Самое простое - это превратить имя с версией в оригинальное имя файла.

На уровне Apache это можно сделать mod_rewrite:

RewriteEngine on
RewriteRule ^/(.*\.)v[0-9.]+\.(css|js|gif|png|jpg)$	/$1$2	[L]

Такое правило обрабатывает все css/js/gif/png/jpg-файлы, вырезая из имени версию.

Например:

/images/logo.v2.gif -> /images/logo.gif
/css/style.v1.27.css -> /css/style.css
/javascript/script.v6.js -> /javascript/script.js

Но кроме вырезания версии - надо еще добавлять заголовки жесткого кеширования к файлам. Для этого используются директивы mod_header:

Header add "Expires" "Mon, 28 Jul 2014 23:30:00 GMT"
Header add "Cache-Control" "max-age=315360000"

А все вместе реализует вот такой апачевый конфиг:

RewriteEngine on
# убирает версию, и заодно ставит переменную что файл версионный
RewriteRule ^/(.*\.)v[0-9.]+\.(css|js|gif|png|jpg)$ /$1$2 [L,E=VERSIONED_FILE:1]

# жестко кешируем версионные файлы
Header add "Expires" "Mon, 28 Jul 2014 23:30:00 GMT" env=VERSIONED_FILE
Header add "Cache-Control" "max-age=315360000" env=VERSIONED_FILE
Из-за порядка работы модуля mod_rewrite, RewriteRule нужно поставить в основной конфигурационный файл httpd.conf или в подключаемые к нему(include) файлы, но ни в коем случае не в .htaccess, иначе команды Header будут запущены первыми, до того, как установлена переменная VERSIONED_FILE.

Директивы Header могут быть где угодно, даже в .htaccess - без разницы.

Как ставить версию в имя скрипта - зависит от Вашей шаблонной системы и, вообще, способа добавлять скрипты (стили и т.п.).

Например, при использовании даты модификации в качестве версии и шаблонизатора Smarty - ссылки можно ставить так:

<link href="{version src='/css/group.css'}" rel="stylesheet" type="text/css" />

Функция version добавляет версию:

function smarty_version($args){

  $stat = stat($GLOBALS['config']['site_root'].$args['src']);
  $version = $stat['mtime'];

  echo preg_replace('!\.([a-z]+?)$!', ".v$version.\$1", $args['src']);
}

Результат на странице:

<link href="/css/group.v1234567890.css" rel="stylesheet" type="text/css" />

Чтобы избежать лишних вызовов stat, можно хранить массив со списком текущих версий в отдельной переменной

$versions['css'] = array(
  'group.css' => '1.1',
  'other.css' => '3.0',
}

В этом случае в HTML просто подставляется текущая версия из массива.

Можно скрестить оба подхода, и выдавать во время разработки версию по дате модификации - для актуальности, а в продакшн - версию из массива, для производительности.

Такой способ кеширования работает везде, включая Javascript, CSS, изображения, flash-ролики и т.п.

Он полезен всегда, когда документ изменяется, но в браузере всегда должна быть текущая актуальная версия.


Автор: tenshi, дата: 3 мая, 2008 - 10:59
#permalink

браузеры не кэшируют вопросики только если не переданы заголовки регулирующие кэширование.

.ня


Автор: Илья Кантор, дата: 16 января, 2011 - 18:36
#permalink

Современная ситуация такова что прокси хуже кешируют вопросики. С браузерами сейчас все в порядке.


Автор: john451 (не зарегистрирован), дата: 30 ноября, 2020 - 21:07
#permalink

Read more here
https://google.com


Автор: john252 (не зарегистрирован), дата: 30 ноября, 2020 - 21:08
#permalink

Автор: john5323 (не зарегистрирован), дата: 30 ноября, 2020 - 21:09
#permalink

Автор: tenshi, дата: 3 мая, 2008 - 11:06
#permalink

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

.ня


Автор: Илья Кантор, дата: 3 мая, 2008 - 15:00
#permalink

Сейчас очень мало ресурсов, где жестко кешируется все HTML-страница.

Но даже если она кешируется по ETag/Last-Modified - то метод замечательно работает.
Конечно, эти ETag/Last-Modified должны обновляться при изменении версии ресурса.


Автор: tenshi, дата: 3 мая, 2008 - 11:14
#permalink

более оптимальное кэширование:
устанавливаем время кэширования в несколько секунд и прячемся за проксёй, которая, соответственно, будет стучаться к нам не чаще чем раз в несколько секунд, а клиенту быстро отдавать 304 или новый контент.
и не надо изобретать велосипед...

.ня


Автор: Илья Кантор, дата: 3 мая, 2008 - 15:08
#permalink

Метод, описанный в этой статье, направлен на то, чтобы полностью избежать лишних запросов с клиента.

В результате страницы грузятся быстрее, т.к меньше запросов.

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


Автор: tenshi, дата: 3 мая, 2008 - 16:25
#permalink

нифига. в твоём случае после изменения одного ресурса пользователю приходится грузить новую страницу целиком, хотя её контент собственно и не изменился.
в моём - будет загружен только изменившийся ресурс, а вместо страницы будет отдан 304 ответ.

так вот, что быстрее?
1) ревалидировать и загрузить страницу, загрузить ресурс. на каждую загрузку уходит куча хттп-пакетов
2) ревалидировать страницу, ревалидировать все ресурсы, загрузить ресурс. на каждую ревалидацию уходит всего один хттп-пакет

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

ps: ситуацию с сотнями ресурсов я естественно не рассматриваю...
pps: напомню, что все браузеры поддерживают постоянные хттп-соединения...

.ня


Автор: Илья Кантор, дата: 10 мая, 2008 - 08:11
#permalink

Совершенно с тобой согласен. Это разные методы и у них разные характеристики.

Лично я никогда не использую полностраничное кеширование, поэтому даже не стал рассматривать такой случай.

Спасибо за комментарий.


Автор: dark57, дата: 19 мая, 2008 - 12:35
#permalink

На медленном инете (wifi или gprs) или на просто глючном инете (например, p2p сеть задействовала тысящи запросов и плюс канал забит по максимуму) бывает так, что какой-нть форум загрузится, а css не может, хотя он 100% сидит в кеше. В результате форум отрисован в Times New Roman . Иногда css таки подгружается через 5-10 секунд, а иногда так и остается.

Способ, описанный в статье, как раз избавляет от этого недуга.


Автор: oleg12 (не зарегистрирован), дата: 3 июня, 2008 - 19:39
#permalink

У меня вопрос. я создаю страницу которая периодически обновляется, поэтому кэширование не желательно. но в сранице используется скрипт prototype.js который весит почти 100 кб. в несколько раз больше чем вся страница. можно ли как то на долго кешировать именно этот скрипт, а остальную страницу не кешировать?


Автор: atxquadro, дата: 2 марта, 2010 - 00:50
#permalink

Можно пропиши в .htaccess в хэдерах для этого prototype.js Expired большой.
Читай статью.


Автор: tenshi, дата: 4 июня, 2008 - 21:13
#permalink

можно. копай в сторону http headers и .htaccess,

.ня


Автор: des (не зарегистрирован), дата: 9 августа, 2008 - 00:05
#permalink

Прописал этот код на сервере:
RewriteEngine on
# убирает версию, и заодно ставит переменную что файл версионный
RewriteRule ^/(.*\.)v[0-9.]+\.(css|js|gif|png|jpg)$ /$1$2 [L,E=VERSIONED_FILE:1]
# жестко кешируем версионные файлы
Header add "Expires" "Mon, 28 Jul 2014 23:30:00 GMT" env=VERSIONED_FILE
Header add "Cache-Control" "max-age=315360000" env=VERSIONED_FILE

Сервер ругается, что у Header должно быть всего три параметра: действие, заголовок и содержание заголовка. Исполнять не хочет.
У нас получается четыре параметра.
И что делать?


Автор: Илья Кантор, дата: 9 августа, 2008 - 00:48
#permalink

Проверьте версию apache..

Выдержка из http://httpd.apache.org/docs/2.2/mod/mod_headers.html

Syntax: Header [condition] set|append|merge|add|unset|echo|edit header [value] [early|env=[!]variable]

P.S В 2.0 такая запись тоже вроде пашет.


Автор: des (не зарегистрирован), дата: 10 августа, 2008 - 00:04
#permalink

Да вот в том-то и хрень, наверное... У хостера облазил всё - нет намёка на версию...
Только по переданным заголовкам увидел, что Apache 1.3.37...
У него, я так понял, не работает эта штука...


Автор: TaunT (не зарегистрирован), дата: 19 января, 2009 - 22:57
#permalink

оо... сколько ништяков!
в смысле полезной информации


Автор: tty01 (не зарегистрирован), дата: 7 февраля, 2009 - 19:06
#permalink

> Аналогичным образом работает связка Last-Modified + If-Modified-Since

Браво, я бы сказал это самое краткое и понятное описание из того, что читал в сети.


Автор: JB (не зарегистрирован), дата: 10 мая, 2009 - 08:33
#permalink

Еще стоит рассмотреть изменение имени по хешу файла и кодирование его в 36-ричной системе (для краткости).
Достоинства:
- "версия" зависит от реального содержимого (т.е. возможен и возврат к старой версии скрипта с использованием старого кэша браузера);
- нет зависимости от времени изменения файла;
- увеличение безопасности (для запроса файла нужно знать его хеш, а не просто имя).
Недостатки:
- при переформатировании скрипта изменится его хеш (но эта ситуация (переформатирование), на мой взгляд, мало вероятна);
- при изменении только скрипта изменится и текст страницы (для исправления ошибок только в скрипте можно предусмотреть специальный механизм, но сомневаюсь, что это сильно нужно).


Автор: arut55 (не зарегистрирован), дата: 23 сентября, 2009 - 15:46
#permalink

+10 za statyu...


Автор: demimurych (не зарегистрирован), дата: 17 октября, 2009 - 15:27
#permalink

Все вроде бы так да не так.

Например нажав в firefoxe кнопку reload firefox все равно шлет НА ВСЕ ЭЛЕМЕНТЫ ЗАПРОС забивая на кеширование. В ответ конечно получает 306 но тем не менее зачем то запросы шлет.


Автор: Илья Кантор, дата: 18 октября, 2009 - 09:12
#permalink

Да, так работает релоад в Firefox. А еще можно нажать Ctrl-F5, и он вообще все запросит на 200. Только это ведь релоады. А при хождении по страницам все работает ок.


Автор: demimurych (не зарегистрирован), дата: 21 октября, 2009 - 20:56
#permalink

но и это еще не все.

достаточно закрыть тот же фаерфокс хотя бы на 20 минут. И он опять по новой выгребает ВСЕ.


Автор: mycoding, дата: 14 мая, 2011 - 20:05
#permalink

У меня Жесткое кеширование не работает.
Каждый раз опять загружаются файлы.

Пишу в начале кода

header("content-type: text/css"); 
    header("Expires: ".gmdate("D, d M Y H:i:s", time()+86400*365)." GMT");
    header("Cache-Control: max-age="+86400*365);
    ob_start("ob_gzhandler");

Автор: neonshark (не зарегистрирован), дата: 18 августа, 2011 - 10:27
#permalink

Небольшое исправление в правило:

RewriteRule ^/(.*\.)v[0-9\.]+\.(css|js|gif|png|jpg)$ /$1$2 [L,E=VERSIONED_FILE:1]

(добавлена косая черта '\' перед '.'). Позволит правильно обработать запросы типа my-js.v1.1.js, my-js.v1.1.1.js и т.п.


Автор: neonshark (не зарегистрирован), дата: 19 августа, 2011 - 08:35
#permalink

А статья суперская, все получилось и работает (я на VDS под Linux).


Автор: Paul_onclick, дата: 30 октября, 2011 - 12:06
#permalink
header("Expires: ".gmdate("D, d M Y H:i:s", time()+86400*365)." GMT");
header("Cache-Control: max-age="+86400*365);

А куда такие header'ы вписывать, если нужно, предположим, js-файл закэшировать? В сам файл с JS?


Автор: kf1day (не зарегистрирован), дата: 30 октября, 2012 - 10:50
#permalink

Можно переименовать .js в .php и добавить в начало скрипта php-код с соответствующими заголовками:

<?php

  header( "Content-Type: text/javascript" );
  header( "Expires: ".gmdate( "D, d M Y H:i:s", time() + 86400 * 365 )." GMT" );
  header( "Cache-Control: max-age=".( 86400*365 ) );

?>

В примере ошибка, нужно использовать именно

max-age=".(86400*365)

вместо

max-age="+86400*365


Автор: Mixa (не зарегистрирован), дата: 7 декабря, 2011 - 20:21
#permalink

Доброго времени суток!
Хочу сначала выразить огромную благодарность за проделаную работу на пути к просвитлению тьмы!

Вопрос (возможно я чет не до понял, а скорее всего так и есть):
мне нужно чтобы браузер не кешировал мое изображение в анимации, как это правильно прописать?


Автор: Хыиуду, дата: 5 мая, 2012 - 12:00
#permalink

А можно еще
href=css/style.css?ver=1.0
При изменении файла css в подключающем файле просто меняется номер версии, и браузер его обновляет без вопросов


Автор: Раед, дата: 12 мая, 2012 - 22:51
#permalink

Из-за порядка работы модуля mod_rewrite, RewriteRule нужно поставить в основной конфигурационный файл httpd.conf или в подключаемые к нему(include) файлы, но ни в коем случае не в .htaccess, иначе команды Header будут запущены первыми, до того, как установлена переменная VERSIONED_FILE.

А нельзя поменять порядок с помощью order?
Не всегда есть возможность использовать главные конфиг-файлы


Автор: blackswanny, дата: 1 ноября, 2012 - 11:40
#permalink

У меня стоит следующая задача:
Есть статические js-файлы в хедере страницы. Развернуто веб-приложение из этой одной страницы (html), которое является лишь частью всего большого проекта на ASP.NET.
Необходимо, чтобы работало кеширование без запроса на сервер даже с проверкой модификации. Т.е. чтобы обновить приложение можно было, если почистить кеш браузера. При этом сервер IIS 7, который конфигурировать его нельзя. В ASP.NET тоже вклиниваться нежелательно.
Решение пока не нашел.


Автор: CoddX, дата: 17 декабря, 2012 - 12:17
#permalink

народ, может кто подскажет как в ие 8 с помощью javascript чистить кеш?
или может у кого завалялась ссылочка на эту тему ), буду очень признателен


Автор: Горбунов (не зарегистрирован), дата: 24 сентября, 2014 - 19:27
#permalink

Здравствуйте,
Вы не могли бы подсказать, возможно ли с помощю подобной функции
(может как либо измененной):

function smarty_version($args){

$stat = stat($GLOBALS['config']['site_root'].$args['src']);
$version = $stat['mtime'];

echo preg_replace('!\.([a-z]+?)$!', ".v$version.\$1", $args['src']);
}

дополнить версиями картинки (jpeg, pnp), что на странице?

Или если есть какая то другая?
Буду ОЧЕНЬ благодарен!


Автор: Гость (не зарегистрирован), дата: 25 октября, 2019 - 18:18
#permalink

Вопрос (возможно я чет не до понял, а скорее всего так и есть): super mario bros
мне нужно чтобы браузер не кешировал мое изображение в анимации, как это правильно прописать?


Автор: bivina (не зарегистрирован), дата: 3 января, 2020 - 10:09
#permalink

The information is very special, I will have to follow you, the information you bring is very real, reflecting correctly and objectively, it is very useful for society to grow together. candy crush soda


Автор: goal ken (не зарегистрирован), дата: 3 января, 2020 - 10:11
#permalink

Your share is the great knowledge I have gathered, you are an important person I admire, thank you happy wheels


Автор: goako (не зарегистрирован), дата: 21 января, 2020 - 05:48
#permalink

Your share is the great knowledge I have gathered, you are an important person I admire, thank you basketball legends


Автор: kaleana (не зарегистрирован), дата: 4 марта, 2020 - 07:22
#permalink

Maybe it will be better, I need to find out and need more information krunker


Автор: john bond (не зарегистрирован), дата: 4 марта, 2020 - 18:04
#permalink

This content is written very well. Your use of formatting when making your points makes your observations very clear and easy to understand. Thank you.
https://arkserverhosting.co.uk


Автор: johnb (не зарегистрирован), дата: 4 марта, 2020 - 18:06
#permalink

I admire this article for the well-researched content and excellent wording. I got so involved in this material that I couldn’t stop reading. I am impressed with your work and skill. Thank you so much.
portable hairdryer


Автор: johnsss (не зарегистрирован), дата: 4 марта, 2020 - 18:06
#permalink

Thanks so much for this information. I have to let you know I concur on several of the points you make here and others may require some further review, but I can see your viewpoint.
crime scene cleanup


Автор: johnss (не зарегистрирован), дата: 4 марта, 2020 - 18:07
#permalink

Awesome article! I want people to know just how good this information is in your article. It’s interesting, compelling content. Your views are much like my own concerning this subject.
mini carpet cleaner


Автор: john bond (не зарегистрирован), дата: 5 марта, 2020 - 12:56
#permalink

I am happy to find this post very useful for me, as it contains lot of information. I always prefer to read the quality content and this thing I found in you post. Thanks for sharing.
trulylovelykitchen


Автор: video game rumors (не зарегистрирован), дата: 22 марта, 2020 - 09:09
#permalink

Thank you for very usefull information..


Автор: osama shk (не зарегистрирован), дата: 24 марта, 2020 - 13:11
#permalink

This is the type of information I’ve long been trying to find. Thank you for writing this information.
婚約指輪 福岡


Автор: osama shk (не зарегистрирован), дата: 24 марта, 2020 - 16:16
#permalink

The information you have posted is very useful. The sites you have referred was good. Thanks for sharing...
エンゲージリング


Автор: osama shk (не зарегистрирован), дата: 25 марта, 2020 - 21:31
#permalink

I can set up my new idea from this post. It gives in depth information. Thanks for this valuable information for all,..
婚約指輪 猫


Автор: osama shk (не зарегистрирован), дата: 26 марта, 2020 - 00:03
#permalink

Very good written article. It will be supportive to anyone who utilizes it, including me. Keep doing what you are doing – can’t wait to read more posts.
婚約指輪 福岡


Автор: 33카지노 (не зарегистрирован), дата: 17 апреля, 2020 - 08:24
#permalink

We hope that our list of popular scams on Craigslist Las Vegas NV has helped understand what to watch out for when contacting a seller. Before we move on, however, we have a few more tips to you. To begin with, if you are planning to meet some from Craigslist in Las Vegas, you should always try to make sure that the encounter would be in a public place.


Автор: osama shk (не зарегистрирован), дата: 20 апреля, 2020 - 17:44
#permalink

Hello There. I found your blog using msn. This is an extremely well written article. I will be sure to bookmark it and return to read more of your useful information. Thanks for the post. I’ll certainly comeback.
PEMF


Автор: osama shk (не зарегистрирован), дата: 20 апреля, 2020 - 22:30
#permalink

Good website! I truly love how it is easy on my eyes it is. I am wondering how I might be notified whenever a new post has been made. I have subscribed to your RSS which may do the trick? Have a great day!
pemf therapy


Автор: osama shk (не зарегистрирован), дата: 10 мая, 2020 - 21:31
#permalink

Good post but I was wondering if you could write a litter more on this subject? I’d be very thankful if you could elaborate a little bit further. Appreciate it!
post free ads


Автор: maroc (не зарегистрирован), дата: 19 июня, 2020 - 14:22
#permalink

This was really an interesting topic and I kinda agree with what you have mentioned here!
depannage rideau metallique


Автор: blues (не зарегистрирован), дата: 19 июня, 2020 - 14:22
#permalink

Most of the time I don’t make comments on websites, but I'd like to say that this article really forced me to do so. Really nice post!
depannage rideau metallique


Автор: bluepea (не зарегистрирован), дата: 19 июня, 2020 - 16:58
#permalink

I have bookmarked your blog, the articles are way better than other similar blogs.. thanks for a great blog!
click here


Автор: Гость (не зарегистрирован), дата: 18 июля, 2020 - 16:53
#permalink

Your website is really cool and this is a great inspiring article.
Modbus RTU gateway


Автор: suka chu (не зарегистрирован), дата: 14 августа, 2020 - 12:44
#permalink

I have read your article, it is very informative and helpful for me. I admire the valuable information you provide in your articles. Thank you for posting it. bmi calculator


Автор: marocos (не зарегистрирован), дата: 19 августа, 2020 - 14:32
#permalink

I really appreciate the kind of topics you post here. Thanks for sharing us a great information that is actually helpful. Good day!


Автор: john bond (не зарегистрирован), дата: 21 августа, 2020 - 17:45
#permalink

I have not any word to appreciate this post.....Really i am impressed from this post....the person who create this post it was a great human..thanks for shared this with us.
click here


Автор: john bond (не зарегистрирован), дата: 21 августа, 2020 - 17:46
#permalink

Superbly written article, if only all bloggers offered the same content as you, the internet would be a far better place..
click here


Автор: john bond (не зарегистрирован), дата: 26 августа, 2020 - 12:38
#permalink

Your website is really cool and this is a great inspiring article.
Cryptocurrency Price Widget


Автор: osama shk (не зарегистрирован), дата: 7 сентября, 2020 - 13:55
#permalink

Thanks for sharing this information. I really like your blog post very much. You have really shared a informative and interesting blog post with people..
find here


Автор: joyce112 (не зарегистрирован), дата: 8 сентября, 2020 - 12:18
#permalink

Hard workers never need despair, because everything is achieved by hard work and hard work. I feel great when you know more about find a word


Автор: osama shk (не зарегистрирован), дата: 8 сентября, 2020 - 14:39
#permalink

I just found this blog and have high hopes for it to continue. Keep up the great work, its hard to find good ones. I have added to my favorites. Thank You.
Estimate


Автор: osama shk (не зарегистрирован), дата: 14 сентября, 2020 - 19:27
#permalink

Thanks for taking the time to discuss this, I feel strongly about it and love learning more on this topic.
seo


Автор: osama shk (не зарегистрирован), дата: 27 сентября, 2020 - 15:49
#permalink

Great write-up, I am a big believer in commenting on blogs to inform the blog writers know that they’ve added something worthwhile to the world wide web!..
carpet cleaning


Автор: osama shk (не зарегистрирован), дата: 28 сентября, 2020 - 17:48
#permalink

Great write-up, I am a big believer in commenting on blogs to inform the blog writers know that they’ve added something worthwhile to the world wide web!..
homeostasis


Автор: osama shk (не зарегистрирован), дата: 28 сентября, 2020 - 18:57
#permalink

Great write-up, I am a big believer in commenting on blogs to inform the blog writers know that they’ve added something worthwhile to the world wide web!..
immigration attorney


Автор: osama shk (не зарегистрирован), дата: 30 сентября, 2020 - 12:12
#permalink

I know your expertise on this. I must say we should have an online discussion on this. Writing only comments will close the discussion straight away! And will restrict the benefits from this information.
Akıllı Ev Sistemleri


Автор: osama shk (не зарегистрирован), дата: 4 октября, 2020 - 10:41
#permalink

I can see that you are an expert at your field! I am launching a website soon, and your information will be very useful for me.. Thanks for all your help and wishing you all the success in your business.
land clearing


Автор: osama shk (не зарегистрирован), дата: 5 октября, 2020 - 13:20
#permalink

I recently came across your blog and have been reading along. I thought I would leave my first comment. I don't know what to say except that I have enjoyed reading. Nice blog. I will keep visiting this blog very often.
tra thao moc giam can vy tea


Автор: osama shk (не зарегистрирован), дата: 9 октября, 2020 - 23:37
#permalink

I know your expertise on this. I must say we should have an online discussion on this. Writing only comments will close the discussion straight away! And will restrict the benefits from this information.
fathers day cards


Автор: john bond (не зарегистрирован), дата: 14 октября, 2020 - 17:31
#permalink

Really a great addition. I have read this marvelous post. Thanks for sharing information about it. I really like that. Thanks so lot for your convene.
cut files


Автор: osama shk (не зарегистрирован), дата: 18 октября, 2020 - 14:05
#permalink

Great write-up, I am a big believer in commenting on blogs to inform the blog writers know that they’ve added something worthwhile to the world wide web!..
Ipswich Gutter cleaning


Автор: osama shk (не зарегистрирован), дата: 18 октября, 2020 - 22:51
#permalink

I can see that you are an expert at your field! I am launching a website soon, and your information will be very useful for me.. Thanks for all your help and wishing you all the success in your business.
drone video services


Автор: rubewrenn269 (не зарегистрирован), дата: 19 октября, 2020 - 09:24
#permalink

Thanks for spending the time to debate this, I really feel strongly about it and love studying more on this topic. Avail now our bricklaying service.


Автор: john bond (не зарегистрирован), дата: 20 октября, 2020 - 14:43
#permalink

Really a great addition. I have read this marvelous post. Thanks for sharing information about it. I really like that. Thanks so lot for your convene.
product videos


Автор: osama shk (не зарегистрирован), дата: 21 октября, 2020 - 15:33
#permalink

Great write-up, I am a big believer in commenting on blogs to inform the blog writers know that they’ve added something worthwhile to the world wide web!..
accident lawyer


Автор: osama shk (не зарегистрирован), дата: 21 октября, 2020 - 16:46
#permalink

I haven’t any word to appreciate this post.....Really i am impressed from this post....the person who create this post it was a great human..thanks for shared this with us.
Retro spellen kopen


Автор: john bond (не зарегистрирован), дата: 22 октября, 2020 - 20:20
#permalink

I wish more authors of this type of content would take the time you did to research and write so well. I am very impressed with your vision and insight.
accident attorney


Автор: osama shk (не зарегистрирован), дата: 24 октября, 2020 - 13:27
#permalink

Great write-up, I am a big believer in commenting on blogs to inform the blog writers know that they’ve added something worthwhile to the world wide web!..gut health


Автор: osama shk (не зарегистрирован), дата: 31 октября, 2020 - 11:54
#permalink

Really a great addition. I have read this marvelous post. Thanks for sharing information about it. I really like that. Thanks so lot for your convene.
anunturi gratuite angajari


Автор: osama shk (не зарегистрирован), дата: 31 октября, 2020 - 21:18
#permalink

I know your expertise on this. I must say we should have an online discussion on this. Writing only comments will close the discussion straight away! And will restrict the benefits from this information.
Harley-Davidson Motorclothes


Автор: osama shk (не зарегистрирован), дата: 6 ноября, 2020 - 23:00
#permalink

I can see that you are an expert at your field! I am launching a website soon, and your information will be very useful for me.. Thanks for all your help and wishing you all the success in your business.
Automatisierung im Handwerk


Автор: osama shk (не зарегистрирован), дата: 22 ноября, 2020 - 18:29
#permalink

This is very educational content and written well for a change. It's nice to see that some people still understand how to write a quality post.!
fake grass Sheffield


Автор: osama shk (не зарегистрирован), дата: 29 ноября, 2020 - 20:01
#permalink

I really loved reading your blog. It was very well authored and easy to undertand. Unlike additional blogs I have read which are really not tht good. I also found your posts very interesting. In fact after reading, I had to go show it to my friend and he ejoyed it as well!
tilers in Leeds


Автор: osama shk (не зарегистрирован), дата: 5 декабря, 2020 - 17:02
#permalink

Thank you so much for sharing this great blog.Very inspiring and helpful too.Hope you continue to share more of your ideas.I will definitely love to read.
photo booth sale


Автор: osama shk (не зарегистрирован), дата: 5 декабря, 2020 - 17:03
#permalink

Nice blog and absolutely outstanding. You can do something much better but i still say this perfect.Keep trying for the best.
photo booth sale


Автор: osama shk (не зарегистрирован), дата: 5 декабря, 2020 - 18:31
#permalink

This is highly information, crisp and clear. I think that everything has been described in systematic manner so that reader could get maximum information and learn many things.
3d printing Manchester


Автор: osama shk (не зарегистрирован), дата: 5 декабря, 2020 - 19:06
#permalink

I think this is one of the most significant information for me. And i’m glad reading your article. But should remark on some general things, The web site style is perfect, the articles is really great : D. Good job, cheers
printing derby


Автор: osama shk (не зарегистрирован), дата: 7 декабря, 2020 - 11:59
#permalink

This type of message always inspiring and I prefer to read quality content, so happy to find good place to many here in the post, the writing is just great, thanks for the post.
roofing Lancaster


Автор: osama shk (не зарегистрирован), дата: 9 декабря, 2020 - 16:59
#permalink

This is my first time visit here. From the tons of comments on your articles,I guess I am not only one having all the enjoyment right here!
car repair Reading


Автор: osama shk (не зарегистрирован), дата: 10 декабря, 2020 - 17:50
#permalink

I am happy to find this post very useful for me, as it contains lot of information. I always prefer to read the quality content and this thing I found in you post. Thanks for sharing.
hogar inteligente


Автор: osama shk (не зарегистрирован), дата: 10 декабря, 2020 - 18:36
#permalink

This is very interesting content! I have thoroughly enjoyed reading your points and have come to the conclusion that you are right about many of them. You are great.
mobile mechanic Reading


Автор: osama shk (не зарегистрирован), дата: 12 декабря, 2020 - 13:07
#permalink

This was a really great contest and hopefully I can attend the next one. It was alot of fun and I really enjoyed myself..
Wakefield pest control


Автор: sopa (не зарегистрирован), дата: 19 декабря, 2020 - 13:28
#permalink

I really like reading through a post that can make people think. Also, many thanks for permitting me to comment! 8 ball


Автор: osama shk (не зарегистрирован), дата: 23 декабря, 2020 - 14:24
#permalink

Very nice article, I enjoyed reading your post, very nice share, I want to twit this to my followers. Thanks!.
maison intelligente


Автор: osama shk (не зарегистрирован), дата: 26 декабря, 2020 - 20:21
#permalink

This is just the information I am finding everywhere. Thanks for your blog, I just subscribe your blog. This is a nice blog..
Click here


Автор: Гость (не зарегистрирован), дата: 30 декабря, 2020 - 07:38
#permalink

Very good points you wrote here..Great stuff...I think you've made some truly interesting points.Keep up the good work.
read more


Автор: osama shk (не зарегистрирован), дата: 3 января, 2021 - 01:23
#permalink

Thanks for posting this info. I just want to let you know that I just check out your site and I find it very interesting and informative. I can't wait to read lots of your posts.
instagram Abonnenten kaufen bei abonnenten24.de


Автор: osama shk (не зарегистрирован), дата: 3 января, 2021 - 17:15
#permalink

I am very enjoyed for this blog. Its an informative topic. It help me very much to solve some problems. Its opportunity are so fantastic and working style so speedy.
Domótica


Автор: osama shk (не зарегистрирован), дата: 3 января, 2021 - 19:58
#permalink

Great write-up, I am a big believer in commenting on blogs to inform the blog writers know that they’ve added something worthwhile to the world wide web!..
abonnenten24


Автор: putakao (не зарегистрирован), дата: 4 января, 2021 - 06:41
#permalink

It’s hard to come by experienced people in this particular topic,but you sound like you know what you’re talking about! Thanks temple run


Автор: john bond (не зарегистрирован), дата: 4 января, 2021 - 11:21
#permalink

I’ve been searching for some decent stuff on the subject and haven't had any luck up until this point, You just got a new biggest fan!..abonnenten24


Автор: osama shk (не зарегистрирован), дата: 4 января, 2021 - 19:55
#permalink

I can see that you are an expert at your field! I am launching a website soon, and your information will be very useful for me.. Thanks for all your help and wishing you all the success in your business.
digital marketing


Автор: osama shk (не зарегистрирован), дата: 5 января, 2021 - 15:11
#permalink

Awesome blog. I enjoyed reading your articles. This is truly a great read for me. I have bookmarked it and I am looking forward to reading new articles. Keep up the good work!
digital marketing


Автор: osama shk (не зарегистрирован), дата: 16 января, 2021 - 15:22
#permalink

I can see that you are an expert at your field! I am launching a website soon, and your information will be very useful for me.. Thanks for all your help and wishing you all the success in your business.
alquiler de carros en cartagena


Автор: osama shk (не зарегистрирован), дата: 17 января, 2021 - 15:59
#permalink

Great write-up, I am a big believer in commenting on blogs to inform the blog writers know that they’ve added something worthwhile to the world wide web!..
bridgend house clearance


Автор: osama shk (не зарегистрирован), дата: 17 января, 2021 - 16:05
#permalink

I can see that you are an expert at your field! I am launching a website soon, and your information will be very useful for me.. Thanks for all your help and wishing you all the success in your business.
bridgend house clearance


Автор: osama shk (не зарегистрирован), дата: 17 января, 2021 - 17:55
#permalink

Very nice article, I enjoyed reading your post, very nice share, I want to twit this to my followers. Thanks!.
hartlepool removals


Автор: osama shk (не зарегистрирован), дата: 20 января, 2021 - 14:26
#permalink

Great write-up, I am a big believer in commenting on blogs to inform the blog writers know that they’ve added something worthwhile to the world wide web!..
Heimautomation


Автор: osama shk (не зарегистрирован), дата: 20 января, 2021 - 15:25
#permalink

I can see that you are an expert at your field! I am launching a website soon, and your information will be very useful for me.. Thanks for all your help and wishing you all the success in your business.
tree surgeon in colchester


Автор: osama shk (не зарегистрирован), дата: 23 января, 2021 - 17:22
#permalink

I know your expertise on this. I must say we should have an online discussion on this. Writing only comments will close the discussion straight away! And will restrict the benefits from this information.
covid isla mujeres


Автор: osama shk (не зарегистрирован), дата: 24 января, 2021 - 12:29
#permalink

Great write-up, I am a big believer in commenting on blogs to inform the blog writers know that they’ve added something worthwhile to the world wide web!..
Hausautomation


Автор: osama shk (не зарегистрирован), дата: 24 января, 2021 - 14:48
#permalink

Interesting topic for a blog. I have been searching the Internet for fun and came upon your website. Fabulous post. Thanks a ton for sharing your knowledge! It is great to see that some people still put in an effort into managing their websites. I'll be sure to check back again real soon.
tree surgeon colchester


Автор: transen bonn (не зарегистрирован), дата: 27 января, 2021 - 18:42
#permalink

Check the most trusted site when it comes to transen bonn


Автор: osama shk (не зарегистрирован), дата: 31 января, 2021 - 19:26
#permalink

You have a real ability for writing unique content. I like how you think and the way you represent your views in this article. I agree with your way of thinking. Thank you for sharing.
best thing to do in cozumel


Автор: teena bavera (не зарегистрирован), дата: 2 февраля, 2021 - 19:24
#permalink

amazing Shayari and poetry to explore. Shayari is a part of culture in India and a rich tradition of poetry and has many different forms.


Автор: sextreffen lübeck (не зарегистрирован), дата: 2 февраля, 2021 - 19:34
#permalink

Visit sextreffen lübeck and chat with hot ladies all night long


Автор: osama shk (не зарегистрирован), дата: 3 февраля, 2021 - 16:37
#permalink

I really loved reading your blog. It was very well authored and easy to understand. Unlike other blogs I have read which are really not that good.Thanks alot!
آموزش سیستم هوشمند


Автор: osama shk (не зарегистрирован), дата: 6 февраля, 2021 - 00:54
#permalink

Thanks for taking the time to discuss this, I feel strongly about it and love learning more on this topic. If possible, as you gain expertise, would you mind updating your blog with more information? It is extremely helpful for me.
آموزش سیستم هوشمند


Автор: osama shk (не зарегистрирован), дата: 18 февраля, 2021 - 12:44
#permalink

Great write-up, I am a big believer in commenting on blogs to inform the blog writers know that they’ve added something worthwhile to the world wide web!..
legjobb pályázatírás Debrecen


Автор: farhan (не зарегистрирован), дата: 21 февраля, 2021 - 20:30
#permalink

Interesting post. I Have Been wondering about this issue, so thanks for posting. Pretty cool post.It 's really very nice and Useful post.Thanks
best cenotes near tulum


Автор: osama shk (не зарегистрирован), дата: 24 февраля, 2021 - 14:53
#permalink

Thanks for sharing this information. I really like your blog post very much. You have really shared a informative and interesting blog post with people..
rumah pintar


Автор: osama shk (не зарегистрирован), дата: 27 февраля, 2021 - 17:12
#permalink

I know your expertise on this. I must say we should have an online discussion on this. Writing only comments will close the discussion straight away! And will restrict the benefits from this information.
rumah pintar


Автор: osama shk (не зарегистрирован), дата: 2 марта, 2021 - 16:09
#permalink

I’ve been searching for some decent stuff on the subject and haven't had any luck up until this point, You just got a new biggest fan!..
olcsó kombájn szállítás


Автор: BCDC Newark (не зарегистрирован), дата: 22 марта, 2021 - 15:17
#permalink

Please let me know if you’re looking for a article writer for your site. You have some really great posts and I feel I would be a good asset. If you ever want to take some of the load off, I’d absolutely love to write some material for your blog in exchange for a link back to mine. Please send me an email if interested. Thank you!
treatnheal


Автор: osama shk (не зарегистрирован), дата: 24 марта, 2021 - 15:06
#permalink

Very nice article, I enjoyed reading your post, very nice share, I want to twit this to my followers. Thanks!.
treatnheal


Автор: farhan fave (не зарегистрирован), дата: 28 марта, 2021 - 14:10
#permalink

Nice knowledge gaining article. This post is really the best on this valuable topic.
Automatyka domowa


Автор: osama shk (не зарегистрирован), дата: 3 апреля, 2021 - 15:05
#permalink

Excellent .. Amazing .. I’ll bookmark your blog and take the feeds also…I’m happy to find so many useful info here in the post, we need work out more techniques in this regard, thanks for sharing.
Inteligentny dom


Автор: osama shk (не зарегистрирован), дата: 4 апреля, 2021 - 16:05
#permalink

Great write-up, I am a big believer in commenting on blogs to inform the blog writers know that they’ve added something worthwhile to the world wide web!..
luxury bathroom vanity


Автор: osama shk (не зарегистрирован), дата: 5 апреля, 2021 - 14:54
#permalink

Great write-up, I am a big believer in commenting on blogs to inform the blog writers know that they’ve added something worthwhile to the world wide web!..
unique bathroom vanity


Автор: jogazy jogazy (не зарегистрирован), дата: 14 апреля, 2021 - 20:01
#permalink

I recently came across your blog and have been reading along. I thought I would leave my first comment. I don't know what to say except that I have enjoyed reading. Nice blog. I will keep visiting this blog very often.
taroko gorge


Автор: osama shk (не зарегистрирован), дата: 15 апреля, 2021 - 22:08
#permalink

I have not any word to appreciate this post.....Really i am impressed from this post....the person who create this post it was a great human..thanks for shared this with us.
Things to do in Hualien


Автор: osama shk (не зарегистрирован), дата: 25 апреля, 2021 - 22:24
#permalink

Thanks for taking the time to discuss this, I feel strongly that love and read more on this topic. If possible, such as gain knowledge, would you mind updating your blog with additional information? It is very useful for me.
retaining wall


Автор: osama shk (не зарегистрирован), дата: 5 мая, 2021 - 00:06
#permalink

Superbly written article, if only all bloggers offered the same content as you, the internet would be a far better place..
Sblc Providers


Автор: Гостьsad (не зарегистрирован), дата: 20 мая, 2021 - 11:06
#permalink

Just admiring your work and wondering how you managed this blog so well. It’s so remarkable that I can't afford to not go through this valuable information whenever I surf the internet!
RC toy cars


Автор: farhan (не зарегистрирован), дата: 25 мая, 2021 - 11:00
#permalink

This is a truly good site post. Not too many people would actually, the way you just did. I am really impressed that there is so much information about this subject that have been uncovered and you’ve done your best, with so much class. If wanted to know more about green smoke reviews, than by all means come in and check our stuff. Rug Cleaning Services


Автор: johnss (не зарегистрирован), дата: 28 мая, 2021 - 10:11
#permalink

This is actually the kind of information I have been trying to find. Thank you for writing this information.
RC toy car


Автор: Гость (не зарегистрирован), дата: 30 мая, 2021 - 08:21
#permalink

This is a great inspiring article.I am pretty much pleased with your good work.You put really very helpful information...
Long Island Rug Cleaning


Автор: Гость (не зарегистрирован), дата: 15 июня, 2021 - 17:36
#permalink

Merci pour ces informations mais je préfère utiliser un annuaire gratuit comme Monsieur Liens !


Автор: Casual North Ireland (не зарегистрирован), дата: 16 июня, 2021 - 13:36
#permalink

Casual North Ireland is web platform made for connecting and free sexy chat in United Kingdom, so check out and enjoy


Автор: sex chat kostenlos (не зарегистрирован), дата: 25 июня, 2021 - 11:02
#permalink

If you are looking for sexy chat contacts with hot ladies in EU you must to visit sex chat kostenlos


Автор: ferozshaikh (не зарегистрирован), дата: 29 июня, 2021 - 19:36
#permalink

Hi! Thanks for the great information you have provided! You have touched on crucuial points!


Автор: farhan (не зарегистрирован), дата: 30 июня, 2021 - 11:44
#permalink

This is truly a great read for me. I have bookmarked it and I am looking forward to reading new articles. Keep up the good work!.
recruiting software


Автор: sex contacts nottingham (не зарегистрирован), дата: 5 июля, 2021 - 22:21
#permalink

sex contacts nottingham for your best sexual chat experience with hot young ladies in United Kingdom, check out right now


Автор: farhan (не зарегистрирован), дата: 7 июля, 2021 - 12:50
#permalink

I was surfing net and fortunately came across this site and found very interesting stuff here. Its really fun to read. I enjoyed a lot. Thanks for sharing this wonderful information.
Osteopathie


Автор: ferozshaikh (не зарегистрирован), дата: 7 июля, 2021 - 18:29
#permalink

Hi! Thanks for the great information you have provided! You have touched on crucuial points!
Bola Tangkas Slot


Автор: goxafe (не зарегистрирован), дата: 11 июля, 2021 - 12:26
#permalink

Superbly written article, if only all bloggers offered the same content as you, the internet would be a far better place..


Автор: sheffield casual encounters (не зарегистрирован), дата: 13 июля, 2021 - 13:05
#permalink

sheffield casual encounters is the most valuable web platform created for your own sexy chat pleasure with local ladies in United Kingdom


Автор: Гость (не зарегистрирован), дата: 17 июля, 2021 - 17:15
#permalink

Regarde ici mec !


Автор: Drywall Contractor in Washington, DC (не зарегистрирован), дата: 22 июля, 2021 - 01:13
#permalink

Thank you very much for this useful article.


Автор: Гость (не зарегистрирован), дата: 22 июля, 2021 - 19:36
#permalink

C'est cool !


Автор: ferozshaikh (не зарегистрирован), дата: 24 июля, 2021 - 13:05
#permalink

I am very happy to discover your post as it will become on top in my collection of favorite blogs to visit.
Slot Deposit Linkaja


Автор: Гостьsad (не зарегистрирован), дата: 28 июля, 2021 - 14:53
#permalink

I wanted to thank you for this great read!! I definitely enjoying every little bit of it I have you bookmarked to check out new stuff you post.
teakovy zahradny nabytok


Автор: dizajnovy blog (не зарегистрирован), дата: 28 июля, 2021 - 15:15
#permalink

I read that Post and got it fine and informative. Please share more like that...


Автор: Гостьsad (не зарегистрирован), дата: 28 июля, 2021 - 15:15
#permalink

I read that Post and got it fine and informative. Please share more like that...
I read that Post and got it fine and informative. Please share more like that...
teakovy zahradny nabytok


Автор: ferozshaikh (не зарегистрирован), дата: 29 июля, 2021 - 17:42
#permalink

I am definitely enjoying your website. You definitely have some great insight and great stories.
can someone write my paper for me


Автор: farhan (не зарегистрирован), дата: 3 августа, 2021 - 09:15
#permalink

Great content material and great layout. Your website deserves all of the positive feedback it’s been getting.
modern house architecture design


Автор: farhan (не зарегистрирован), дата: 3 августа, 2021 - 09:31
#permalink

Impressive web site, Distinguished feedback that I can tackle. I am moving forward and may apply to my current job as a pet sitter, which is very enjoyable, but I need to additional expand. Regards.
free keto diet plan for beginners


Автор: ferozshaikh (не зарегистрирован), дата: 3 августа, 2021 - 12:06
#permalink

Great post. and great website. Thanks for the information!
Wohnwagen mieten


Автор: ferozshaikh (не зарегистрирован), дата: 3 августа, 2021 - 13:21
#permalink

I have read your article. it is very informative and helpful for me.I admire the valuable information you offer in your articles. Thanks for posting it..
be.cx


Автор: ferozshaikh (не зарегистрирован), дата: 3 августа, 2021 - 15:13
#permalink

I am very happy to discover your post as it will become on top in my collection of favorite blogs to visit.
media56.com


Автор: Гость (не зарегистрирован), дата: 5 августа, 2021 - 11:40
#permalink

Merci pour toutes ces informations et précieux conseil

Meilleur site de CBD en france :

La Petite herboristerie


Автор: goxafe5195 goxafe5195 (не зарегистрирован), дата: 17 августа, 2021 - 20:15
#permalink

Friend, this web site might be fabolous, i just like it.
career plan


Автор: ferozshaikh (не зарегистрирован), дата: 21 августа, 2021 - 10:34
#permalink

Great survey. I'm sure you're getting a great response.
Tile and grout cleaning Cranbourne


Автор: farhan (не зарегистрирован), дата: 22 августа, 2021 - 14:00
#permalink

Great content material and great layout. Your website deserves all of the positive feedback it’s been getting.
introverts definition


Автор: calywico calywico (не зарегистрирован), дата: 22 августа, 2021 - 19:04
#permalink

Thanks for your post. I’ve been thinking about writing a very comparable post over the last couple of weeks, I’ll probably keep it short and sweet and link to this instead if thats cool. Thanks.
how to calculate dcf


Автор: dolce (не зарегистрирован), дата: 24 августа, 2021 - 01:19
#permalink

I really like the information catalogos cklass


Автор: casino en ligne en France (не зарегистрирован), дата: 25 августа, 2021 - 15:36
#permalink

La première chose que recherche un joueur de casino est la fiabilité et la qualité du programme utilisé par l’opérateur. Découvrir les meilleurs casinos en France sur ce site internet. Par ailleurs, les casinos en ligne ont le devoir de suggérer des offres promotionnelles et commerciales attractives afin de rivaliser avec la concurrence.


Автор: fave fave (не зарегистрирован), дата: 26 августа, 2021 - 11:20
#permalink

I recently came across your blog and have been reading along. I thought I would leave my first comment. I don't know what to say except that I have enjoyed reading. Nice blog. I will keep visiting this blog very often.
denver to vail limo


Автор: fave fave (не зарегистрирован), дата: 2 сентября, 2021 - 13:03
#permalink

Thanks so much for this information. I have to let you know I concur on several of the points you make here and others may require some further review, but I can see your viewpoint.
All-Terrain Electric Wheelchair


Автор: calywico calywico (не зарегистрирован), дата: 2 сентября, 2021 - 13:51
#permalink

This is such a great resource that you are providing and you give it away for free. I love seeing websites that understand the value of providing a quality resource for free. It is the old what goes around comes around routine.windows tips


Автор: goxafe5195 goxafe5195 (не зарегистрирован), дата: 2 сентября, 2021 - 19:26
#permalink

Excellent .. Amazing .. I’ll bookmark your blog and take the feeds also…I’m happy to find so many useful info here in the post, we need work out more techniques in this regard, thanks for sharing.


Автор: Гостьsad (не зарегистрирован), дата: 6 сентября, 2021 - 15:06
#permalink

I can set up my new idea from this post. It gives in depth information. Thanks for this valuable information for all,..
perfect health


Автор: Sexchat Deutschland (не зарегистрирован), дата: 6 сентября, 2021 - 18:34
#permalink

Check the most trusted site when it comes to Sexchat Deutschland


Автор: uk sex chat (не зарегистрирован), дата: 7 сентября, 2021 - 16:25
#permalink

Join our club and enjoy a free chat with hot British women for a long time uk sex chat


Автор: farhan fave (не зарегистрирован), дата: 8 сентября, 2021 - 15:00
#permalink

This is my first time i visit here. I found so many interesting stuff in your blog especially its discussion. From the tons of comments on your articles, I guess I am not the only one having all the enjoyment here! keep up the good work
arete capital


Автор: live cam sex (не зарегистрирован), дата: 13 сентября, 2021 - 20:01
#permalink

Visit our web platform for the best livecam contacts in Europe live cam sex


Автор: live sex (не зарегистрирован), дата: 14 сентября, 2021 - 19:32
#permalink

If you are looking for cam contacts in EU check out the best web platform right now live sex


Автор: CryptoSignal (не зарегистрирован), дата: 15 сентября, 2021 - 20:47
#permalink

Découvrez le meilleur site internet consacrer sur l’actualité des cryptomonnaies en France Cryptosignal.io, notre contenu de qualité est totalement gratuit.


Автор: Гость (не зарегистрирован), дата: 16 сентября, 2021 - 04:26
#permalink

layanan jasa seo indonesia handal profesional ada disini. jangan sungkan untuk order. ditunggu lho ya.


Автор: Гость (не зарегистрирован), дата: 16 сентября, 2021 - 04:27
#permalink

layanan jasa seo indonesia handal profesional ada disini. jangan sungkan untuk order. ditunggu lho ya.


Автор: Гость (не зарегистрирован), дата: 18 сентября, 2021 - 17:57
#permalink

This is really a nice and informative, containing all information and also has a great impact on the new technology. Thanks for sharing it
aloevera products shop


Автор: Zaine (не зарегистрирован), дата: 21 сентября, 2021 - 15:30
#permalink

This is really awesome and informative, best part of this post is your unique concept which is different from other thought. our site


Автор: ferozshaikh (не зарегистрирован), дата: 26 сентября, 2021 - 12:41
#permalink

Great info! I recently came across your blog and have been reading along. I thought I would leave my first comment. I don’t know what to say except that I have.
wholesale distributors in Nigeria


Автор: Гость (не зарегистрирован), дата: 18 октября, 2021 - 16:42
#permalink

I recently came across your blog and have been reading along. I thought I would leave my first comment. I don't know what to say except that I have enjoyed reading. Nice blog. I will keep visiting this blog very often.
Cherada


Автор: Bertha todf (не зарегистрирован), дата: 26 октября, 2021 - 14:39
#permalink

Dies ist mein erstes Mal, dass ich hier besuche. Ich habe so viele interessante Dinge in Ihrem Blog gefunden, insbesondere die Diskussionen. online Stromvergleich


Автор: Гость (не зарегистрирован), дата: 27 октября, 2021 - 16:30
#permalink

Nice to read your article! I am looking forward to sharing your adventures and experiences.
Playa Del Carmen real estate


Автор: john bond (не зарегистрирован), дата: 31 октября, 2021 - 19:18
#permalink

I found your this post while searching for information about blog-related research ... It's a good post .. keep posting and updating information.
boiler installation brighton


Автор: Гость (не зарегистрирован), дата: 1 ноября, 2021 - 09:25
#permalink

Please share more like that.
online bookstore dubai


Автор: Alex Bond (не зарегистрирован), дата: 10 ноября, 2021 - 09:20
#permalink

Merci pour votre commentaire, je vous recommande d'acheter des fleurs de cbd pas cher sur Deewos


Автор: john bonds (не зарегистрирован), дата: 13 ноября, 2021 - 23:29
#permalink

An fascinating discussion is value comment. I think that it is best to write extra on this matter, it won’t be a taboo topic however generally people are not enough to talk on such topics. To the next. Cheers
https://sy-prestige.com/


Автор: Гость (не зарегистрирован), дата: 19 ноября, 2021 - 17:07
#permalink

Merci pour l'article , vous trouverez ici tout ce qu il vous faut pour votre beauté

<a href="https://venus.paris">Venus & Paris Marketplace beauté</a>

Автор: Гость (не зарегистрирован), дата: 19 ноября, 2021 - 17:08
#permalink

Merci pour l'article , vous trouverez ici tout ce qu il vous faut pour votre beauté
Venus & Paris Marketplace beauté


Автор: john bond (не зарегистрирован), дата: 22 ноября, 2021 - 09:57
#permalink

This is a great article thanks for sharing this informative information. I will visit your blog regularly for some latest post.


Автор: Гостьsd (не зарегистрирован), дата: 27 ноября, 2021 - 14:28
#permalink

I know your expertise on this. I must say we should have an online discussion on this. Writing only comments will close the discussion straight away! And will restrict the benefits from this information.
แคปชั่น


Автор: Гостьsd (не зарегистрирован), дата: 27 ноября, 2021 - 14:28
#permalink

I know your expertise on this. I must say we should have an online discussion on this. Writing only comments will close the discussion straight away! And will restrict the benefits from this information.
แคปชั่น


Автор: sex sh (не зарегистрирован), дата: 2 декабря, 2021 - 21:45
#permalink

Find fine ladies from EU for chat and other kind of casual contacts at sex sh


Автор: ferozshaikh (не зарегистрирован), дата: 9 декабря, 2021 - 14:04
#permalink

Great info! I recently came across your blog and have been reading along. I thought I would leave my first comment. I don’t know what to say except that I have.
pre owned rolex


Автор: john bond (не зарегистрирован), дата: 10 декабря, 2021 - 22:22
#permalink

I am no expert, but I believe you just made an excellent point. You certainly fully understand what you are speaking about, and I can truly get behind that.
check valve


Автор: Гость (не зарегистрирован), дата: 23 декабря, 2021 - 08:24
#permalink

I like this post,And I guess that they having fun to read this post,they shall take a good site to make a information,thanks for sharing it to me.
carte yugioh


Автор: Transen Bremen (не зарегистрирован), дата: 23 декабря, 2021 - 15:02
#permalink

Transen Bremen is great place for sexy chat contact in EU


Автор: Гость (не зарегистрирован), дата: 23 декабря, 2021 - 16:46
#permalink

I am very happy to discover your post as it will become on top in my collection of favorite blogs to visit.
commerce24


Автор: 메이저사이트추천 (не зарегистрирован), дата: 12 января, 2022 - 12:29
#permalink

I am really thankful to you for sharing such useful info. Hope you are sharing the same in future. Thanks 메이저사이트추천


Автор: Гость (не зарегистрирован), дата: 16 января, 2022 - 23:55
#permalink

This is very educational content and written well for a change. It's nice to see that some people still understand how to write a quality post!
delta 8


Автор: adada (не зарегистрирован), дата: 20 января, 2022 - 15:49
#permalink

Great article Lot's of information to Read...Great Man Keep Posting and update to People..Thanks
Pook


Автор: Гость (не зарегистрирован), дата: 20 января, 2022 - 23:43
#permalink

Excellent article. Very interesting to read. I really love to read such a nice article. Thanks! keep rocking.
governance risk compliance gdpr software


Автор: Гость (не зарегистрирован), дата: 22 января, 2022 - 22:33
#permalink

Hi! Thanks for the great information you have provided! You have touched on crucuial points!
xerium


Автор: Гость (не зарегистрирован), дата: 27 января, 2022 - 12:39
#permalink

Superbly written article. if only all bloggers offered the same content as you. the internet would be a far better place..
grc software for gdpr


Автор: Гость (не зарегистрирован), дата: 2 февраля, 2022 - 12:01
#permalink

I am definitely enjoying your website. You definitely have some great insight and great stories.
xerium


Автор: Гость (не зарегистрирован), дата: 5 февраля, 2022 - 01:28
#permalink

Wonderful article, thanks for putting this together!
Website Design Leeds


Автор: Гость (не зарегистрирован), дата: 5 февраля, 2022 - 15:28
#permalink

I am definitely enjoying your website. You definitely have some great insight and great stories.
redraiderrvpark


Автор: Гость (не зарегистрирован), дата: 3 марта, 2022 - 15:21
#permalink

Excellent and very exciting site. Love to watch. Keep Rocking.
a course in miracles


Автор: adadad (не зарегистрирован), дата: 22 марта, 2022 - 12:45
#permalink

Excellent and very exciting site. Love to watch. Keep Rocking.
Bosox


Автор: fopemih (не зарегистрирован), дата: 8 апреля, 2022 - 10:10
#permalink

Thanks for this great post, i find it very interesting and very well thought out and put together. I look forward to reading your work in the future. outsource data entry services


Автор: dadad (не зарегистрирован), дата: 11 апреля, 2022 - 12:10
#permalink

Excellent article. Very interesting to read. I really love to read such a nice article. Thanks! keep rocking.
cameronjamesusa


Автор: Гость (не зарегистрирован), дата: 11 апреля, 2022 - 17:57
#permalink

Автор: Гость (не зарегистрирован), дата: 11 апреля, 2022 - 18:01
#permalink

Автор: Гость (не зарегистрирован), дата: 16 апреля, 2022 - 03:09
#permalink

Автор: Гость (не зарегистрирован), дата: 16 апреля, 2022 - 11:59
#permalink

Автор: Chantal Burmann (не зарегистрирован), дата: 21 апреля, 2022 - 20:40
#permalink

Sex Thueringen Możesz mieć wspaniałe doświadczenia z randkami online, jeśli wybierzesz jeden z najlepszych darmowych lub płatnych portali randkowych lub aplikacji. Najlepsza strona internetowa lub aplikacja dostosuje się do Twoich potrzeb i znajdzie dla Ciebie najlepszych partnerów. Zachowaj bezpieczeństwo i nie podawaj żadnych danych osobowych przed pierwszą randką. Nie zostawaj na pierwszej randce ani nie idź, jeśli czujesz się niekomfortowo. Zawsze upewnij się, że jesteś bezpieczny, a przekonasz się, że randki online są przyjemnym doświadczeniem, niezależnie od tego, czy korzystasz z portalu randkowego, czy z aplikacji. Podejmijcie więc wysiłek, zachowajcie bezpieczeństwo i bawcie się dobrze.


Автор: Libertinade (не зарегистрирован), дата: 5 мая, 2022 - 14:24
#permalink

Tu cherches à faire des rencontres libertines en France ? Alors regarde ça !


Автор: Гость (не зарегистрирован), дата: 30 мая, 2022 - 23:39
#permalink

Boutique de CBD essone Retrouver le meilleur du CBD à Paris


Автор: Гостьx (не зарегистрирован), дата: 26 июня, 2022 - 10:07
#permalink

Thanks for this great post, i find it very interesting and very well thought out and put together. I look forward to reading your work in the future. outsource data entry


Автор: fopemih (не зарегистрирован), дата: 30 июня, 2022 - 09:58
#permalink

If more people that write articles really concerned themselves with writing great content like you, more readers would be interested in their writings check it. Thank you for caring about your content.


Автор: Tha Bet (не зарегистрирован), дата: 4 июля, 2022 - 21:10
#permalink

Tha Bet (thabet) is considered as the house that owns the largest and most diverse online game store. There are all forms of sports betting, attractive card games, etc. with high winning rates. Including prizes up to 5 billion VND. Please visit Tha Bet to join


Автор: Гость (не зарегистрирован), дата: 8 июля, 2022 - 14:11
#permalink

Автор: Гость (не зарегистрирован), дата: 13 июля, 2022 - 12:46
#permalink

It's great to be back on your blog happy wheels; it's been months since I last visited. This is the piece I've been waiting for for a long time. I'll need your article to do my college homework, which is on the same subject as your article.


Автор: rujysacub (не зарегистрирован), дата: 24 июля, 2022 - 20:42
#permalink

I found your this post while searching for information about blog-related research ... It's a good post .. Content Marketing
keep posting and updating information.


Автор: rujysacu (не зарегистрирован), дата: 30 июля, 2022 - 11:43
#permalink

hello!! Very interesting discussion glad that I came across such informative post. Keep up the good work friend. Glad to be part of your net community.
https://allhindiyojna.in/


Автор: hiwosa (не зарегистрирован), дата: 25 августа, 2022 - 09:33
#permalink

Interesting and amazing how your post is! It Is Useful and helpful for me That I like it very much, and I am looking forward to Hearing from your next..
nordzypern real estate


Автор: Transexuel Toulouse (не зарегистрирован), дата: 1 ноября, 2022 - 15:05
#permalink

Transexuel Toulouse is great web platform for casual chat experience with fine ladies in France


Автор: ronald burkhart (не зарегистрирован), дата: 19 ноября, 2022 - 15:54
#permalink

PuTTY was created by Simon Tatham and is now maintained by developers from all over the world. It includes a command-line interface that you can tailor to your specific needs. The source code for the cross-platform software is available, and it can also be downloaded PuTTY For Linux.


Автор: Taylor1992 (не зарегистрирован), дата: 10 декабря, 2022 - 06:59
#permalink

Very nice article, uzuolaidos I enjoyed reading your post, very nice share, I want to twit this to my followers. Thanks!.


Автор: Гость (не зарегистрирован), дата: 21 декабря, 2022 - 06:47
#permalink

Muy útil este post sobre cómo implementar el almacenamiento en caché inteligente y la gestión de versiones en Javascript/CSS. Me ha ayudado a mejorar la velocidad de carga de mi sitio web y a evitar problemas de actualización de archivos. ¡Gracias por compartir tus conocimientos!
Cremas corporales efecto luminoso


Автор: kleinanyeigen (не зарегистрирован), дата: 5 февраля, 2023 - 18:30
#permalink

Nice and very detailed explanation for someone who is a beginner in all of this. kleinanzeigen


Автор: Speedtest (не зарегистрирован), дата: 6 февраля, 2023 - 18:08
#permalink

I check here also with this speed test


Автор: chandru (не зарегистрирован), дата: 7 февраля, 2023 - 13:09
#permalink

this is very awesome content to give us the and valuable information to us and valuable content


Автор: Елена Алексеева (не зарегистрирован), дата: 7 февраля, 2023 - 17:01
#permalink

Минусовки из фильмов скачать бесплатно – https://as-sol.net/artists/11208/iz_kinofilmov.html Скачать минусовки песен.


Автор: Öğrenci Gündemi (не зарегистрирован), дата: 4 марта, 2023 - 05:41
#permalink

Öğrencilere dair bilgi paylaşımları, KPSS, YKS, LGS çıkmış sorular, ders notları ve daha fazlası…

https://ogrencigundemi.com/


Автор: pg slot ทดลองเล่น (не зарегистрирован), дата: 12 марта, 2023 - 09:27
#permalink

pg slot ทดลองเล่น Website to try playing slots for every camp for free. No need to apply, no deposit required. All slots players can Free trial of all slot games Update the latest games 2023, try playing slots, PG SLOT and many other camps. There are more than 1,000 games to choose from, open 24 hours a day.


Автор: all4slot (не зарегистрирован), дата: 12 марта, 2023 - 09:27
#permalink

all4slot website providing slot games, online slots, online casinos, fish shooting games from all slots camps. New slot games in one website!


Автор: mega gameโปร100% (не зарегистрирован), дата: 12 марта, 2023 - 09:27
#permalink

mega gameโปร100% PG SLOT (PG Slots) 3D online video slots games, beautiful graphics, attractive to play, with many games to choose from PGSLOT, the main website that offers PG slots games, the latest in 2023, new open slots websites. Play slot games anywhere through the website. GLADIATOR-SLOT.COM Sign up for free


Автор: ลองเล่นสาวถ้ำ (не зарегистрирован), дата: 12 марта, 2023 - 09:27
#permalink

ลองเล่นสาวถ้ำ Many slots fans, easy to break 2023 slots, deposit, withdraw, no minimum, may think that recommending easy to break 2023 slots, slot games that are easy to break, difficult to break. Web slots are the easiest to break. depending on each game Web slots often break But in fact, direct web slots do not pass agents, no minimum.


Автор: ทดลองเล่นสล็อตซื้อฟรีสปินทุกค่าย (не зарегистрирован), дата: 12 марта, 2023 - 09:28
#permalink

ทดลองเล่นสล็อตซื้อฟรีสปินทุกค่าย try playing slots Free trial slot games website Including all famous websites Including all new camps Ready to update all the new games every day. Whether it's the latest game of the camp PG slots on the 22Mega website have gathered all of them here. Let everyone try to experience 3D style slots, play for free, no registration required, apply for membership, play right away, no hassle


Автор: Z-Library (не зарегистрирован), дата: 20 марта, 2023 - 02:19
#permalink

Everything You Need To Know About e-Books and Z-Library in 2023

In a world where technology is constantly advancing, eBooks have become an increasingly popular way for book lovers to enjoy their favorite stories.

And with the emergence of Z Library - a massive online library boasting millions of free titles - accessing literature has never been easier. But what exactly are eBooks and how does Z Library work?

In this post, we'll explore everything you need to know about eBooks and Z Library in 2023, so buckle up and get ready for an exciting journey into the future of reading!


Отправить комментарий

Приветствуются комментарии:
  • Полезные.
  • Дополняющие прочитанное.
  • Вопросы по прочитанному. Именно по прочитанному, чтобы ответ на него помог другим разобраться в предмете статьи. Другие вопросы могут быть удалены.
    Для остальных вопросов и обсуждений есть форум.
P.S. Лучшее "спасибо" - не комментарий, как все здорово, а рекомендация или ссылка на статью.
Содержание этого поля является приватным и не предназначено к показу.
  • Адреса страниц и электронной почты автоматически преобразуются в ссылки.
  • Разрешены HTML-таги: <strike> <a> <em> <strong> <cite> <code> <ul> <ol> <li> <dl> <dt> <dd> <u> <i> <b> <pre> <img> <abbr> <blockquote> <h1> <h2> <h3> <h4> <h5> <p> <div> <span> <sub> <sup>
  • Строки и параграфы переносятся автоматически.
  • Текстовые смайлы будут заменены на графические.

Подробнее о форматировании

CAPTCHA
Антиспам
4 + 0 =
Введите результат. Например, для 1+3, введите 4.
 
Текущий раздел
Поиск по сайту
Содержание

Учебник javascript

Основные элементы языка

Сундучок с инструментами

Интерфейсы

Все об AJAX

Оптимизация

Разное

Дерево всех статей

Последние комментарии
Последние темы на форуме
Forum