SyavaSyava: с вашей позицией я согласен - человек задал вопрос "как", а не "что".
Только вот дело в том, что тостер это технический форум, здесь чаще всего подходят к решению проблем комплексно: если вы зададите вопрос "хочу нарезать около пяти сотен CD-болванок, из чего варить энергетик обезьянке которая будет неделю напролёт менять диски в приводе?", то вам скорее посоветуют пользоваться сетью для передачи информации и спросят какая существует техническая необходимость в записи такого количества CD, чем предложат мешать этой проклятой мартышке таурин с кофеином.
Тут та же ситуация: ТС спросил как определить геоположение пользователя, но как видите цель этой затеи не оправдала себя, и в итоге топовый ответ предлагает банально google maps использовать как fallback. Только ТС вдобавок ещё успел немного съязвить когда его спросили почему он так не хочет менять YM на GM.
Лично я не понимаю почему он решил, что "вопрос-то провокационный".
Станислав: сожалею, что не могу предложить решения, но вы уверены что это "прям проблема"? Который раз захожу на ваш сайт и всё равно не вижу чтоб запрос занимал много времени. К тому же это ajax - запрос асинхронный, он никак не влияет на время первичной загрузки и обработки страницы.
Может с кешем как-то надо пошаманить. Пишут "add _wpcf7_is_ajax_call to your list of ZenCache URI Exclusions.". Не знаю зачем так делать, я думал наоборот лучше заставить запрос кешироваться, но всё же попробуйте.
cjitkul33: "просто попытка установить соединение и отмена по таймауту." - все правильно, других способов выяснить имеет ли клиент доступ к ресурсу нет.
Может быть под пингом подразумевался HEAD, но я не думаю что это что-то ускорит.
cjitkul33: ну конечно, лучше ведь нахамить первому же отвечающему чем просто объяснить в чем именно причина, а то за что вы им лодырям деньги платите, да?
Ст. Ку.: имеется в виду общая задача, для чего всё это делается. Возможно, contentEditable не является лучшим выбором в вашей ситуации, т.к. никаких специальных ивентов, никакой передачи таргета в вашей ситуации не будет, и вам в любом случае придётся пользоваться какими-нибудь хаками.
В целом для решения можно сравнивать состояния - если текущий текст в .txt отличается от предыдущей версии и это отличие - в первой строке, то не добавлять '!'. Но мне кажется что если вы опишите задачу станет проще.