Выставляйте значение-флаг перед вызовом prop() или в момент вызова (при возможности):
изменилось значение - значит программно.
не изменилось - значит пользователь кликнул.
[Шутка дня]: PHP7 - это еще что! А я вот вчера сервер поменял на более производительный, работать стало в 4 раза быстрее на той же версии PHP! Перешел к рефакторингу алгоритма (позже - кода) - буду пробовать запускать на калькуляторе.
))
А вообще - да: интересны реальные голые тесты в плане производительности. www.zend.com/en/resources/php7_infographic kazanir.github.io/profiling habrahabr.ru/post/243361
В среднем на PHP 7 прирост должен быть в 1.9-2.2 раза относительно PHP 5.
Инициатор диалога сессии - всегда сервер вне зависимости от того, кто хочет передать данные. Если не было сети - мы сохраняем статус и сообщение для следующей попытки, НО всегда проверяем время жизни TOKEN'a: LIMIT.
Общий вид процесса:
time1
TOKEN: запрос к серверу на токен.
QUERY: отправка данных.
WORK: обработка данных
time2
IF (time2-time1>LIMIT) GOTO TOKEN
ELSE GOTO QUERY
соответственно он пытается на 100 и 10, но разорвана жила которая учавствует в передаче данных по этим стандартам.
Повреждена одна из двух сред передачи. Т.к. для 100 и 10 используются только 2 пары.
Номера жил: 1,2,3,6 или 4,5,7,8.
При повреждении ОДНОВРЕМЕННО двух каналов - передача данных станет невозможной.
А поисковым роботам или посетителям через прокси - особо не интересно то, что Вас интересует.
Хотите - закройте доступ по IP страны и потеряете тучу лидов. (так лучше не делать)
Хотите - можно определить язык браузера и закрыть доступ к сайту, если пользователь не русскоговорящий. (и так лучше не делать)
А вообще - чем больше народу приходит на сайт - тем лучше для Вас.
Смысла нет... На роутере (PHP-скрипт) это надо делать с функцией неточного поиска пути для роутинга из имеющихся на сайте.
Тогда будет какой-то смысл: при ошибочно набранных URL будет редиректить на похожий и близкий по значению. На первых порах - поможет Левенштейн и шинглы, дальше - нужно более прорабатывать это сравнение.
Я бы предложил итерационный метод.
0. Если нет - настройка аналитики и сбора статистических данных. (подрядчик)
1. Комплексные работы по оптимизации: план и выполнение (Вы+подрядчик)
2. Оплата (Вы платите подрядчику за однократную настройку аналитики и за работу по анализу результатов и оптимизацию - одна итерация)
3. Ожидание (Вы, около 4 недель)
4. Сравнение с предыдущими результатами (Вы, затем подрядчик)
5. Выводы (Вы, затем подрядчик)
6. Goto 1
Свой "прокси" на внешние ссылки: клик, по клику - подмена на какой-нить http://вашсайт.ru/out.php?url=http://vk.com и он пишет в статистику и далее через 301-й редирект - открывает целевую.
Поиск ведется как в контенте, так и в тегах и URL-ах.
Помним, что длинные URL - не всегда удобны для копирования.
Следовательно нужно что-то для ПС - одно и для пользователей - иное.
Такие URL-ы называются каноническими и помечаются специальным тегом canonical.
1. Для ПС - делаем в UTF-8 и в виде длинного предложения:
domain.com/Обзоры/Плитка керамическая и её разновидности/
Для ПС, которые пока не понимают русский UTF-8: можно сделать тоже самое в транслите (добавить еще один канонический вид той же страницы):
domain.com/Obzory/Plitka-keramicheskaya-i-ee-raznovidnosti/
2. Для людей (humanly) - делаем уникальный от корня транслит:
domain.com/plitka-keramicheskaya-i-ee-raznovidnosti.html
3.Можно добавить ещё язык после домена, чтобы сразу было понятно:
ПС: domain.com/ru/Обзоры/Плитка керамическая и её разновидности/
ПС: domain.com/ru/Obzory/Plitka-keramicheskaya-i-ee-raznovidnosti/
humanly: domain.com/ru/plitka-keramicheskaya-i-ee-raznovidnosti.html
Итого: необходимо 3 различных канонических вида одной уникальной страницы на Вашем ресурсе.
Остальное - ПС возьмёт из тегов страницы по одному из этих 3-х линков.