С капитаном Зараки время летит незаметно
Здесь проблема с отображением записи. Показывается кусочек (верхняя часть), избранное обрывается на этой записи.
И я не могу понять, это что-то с дайри или у нас с кодом проблемы.
Несколько часов назад все было нормально.
Скрины:
читать дальше
И я не могу понять, это что-то с дайри или у нас с кодом проблемы.
Несколько часов назад все было нормально.
Скрины:
читать дальше
Это невозможно, там меньше 64 тыс. знаков (порядка 50).
Больше того, она нормально запостилась и висела какое-то время.
* * * * * * * * * * * * * * * * * *
Проблема в том, что текст записи получается больше положенных 64К символов.
Дело в том, что 64 тысячи знаков - это не просто ограничение на длину записи, это ограничение базы данных, то есть весь текст записи в его html-представлении не может быть больше чем 65520 символов.
Вот, например, хтмл-представление (фрагмент) вашей записи:
...ну и так далее.
А вот его текстовое представление:
У нас на сервере включено кеширование, в кеше хранятся записи созданные, обновленные и запрошенные в течение последних 24 часов. В кеше ограничения по длине записи нет, поэтому там всё показывается полностью. Но недолго.
Итак, схема работы сервера выглядит следующим образом:
1. вы пишете запись
2. нажимаете на кнопку "отправить"
3. текст записи преобразовывается в полное хтмл-представление, записывается в кеш (полностью), записывается в базу данных (а тут уже, возможно, и обрезанно)
4. в течение следующих 24 часов вы видите полный текст записи, который находится в кеше, но в базе уже записан "обрезанный" вариант
5. по истечении 24 часов копия записи из кеша удаляется, и при следующем просмотре записи в кеш попадает уже "обрезанный" вариант
С черновиками, подозреваю, происходит то же самое - 24 часа они хранятся "вроде как" целиком, а потом - бац! - и "внезапно" обрезаются.
Из всего сказанного получается, что хотя в форме записи число символов меньше 64К, но фактически длина записи уже превышена. Я скажу программисту, чтобы подсчитывалка длины считала длину уже "развернутой" записи, но не знаю, когда у него будет время заняться этим вопросом. Кроме того, такая новая подсчитывалка значительно замедлит работу сайта в целом: если сейчас длину записи можно подсчитать через джава-скрипт вообще на стороне браузера (то есть, без загрузки текста на сервер и его конвертации), то в новом варианте каждую запись придется загружать и разворачивать. Не знаю, даже, будет ли такой вариант реализован.
Кто виноват, выяснили. Теперь - что делать.
Самый "тупой" вариант, к сожалению, является и самым верным - писать записи меньше
Теперь вопрос: как определить, в какое число символов в хтмл-представлении записи будут превращаться символы из поля ввода записи. Я так подумал, но кроме эмпирического варианта (проверка практикой) ничего не придумал. Схема, то есть, следующая:
1. Считаете, сколько символов в поле ввода новой записи
2. Отправляете запись
3. Открываете исходный код страницы со всеми развернутыми катами
4. Копируете оттуда хтмл-код и считаете, сколько там символов
5. Делите второе число на первое и получаете коэффициент увеличения
Число символов я считаю обычно через эту форму: www.8nog.com/counter/index.php
Тогда у меня огромная просьба - укажите это где-нибудь. Укажите, что нельзя ориентироваться на то, что говорит дайри-статистика.
Потому что у нас пошло под хвост куча работы, не говоря уже о том, что мы поехавшим внезапно кодом напрягли кучу людей (сообщество читают полторы тысячи человек).
На форумах, где существует ограничение на ввод текста, это ограничение указывается очень просто: в знаках с пробелами (включая теги).
И, соответственно, это легко считается в Ворде - загружается запись, кнопка статистики рассказывает, сколько у нас всего знаков.
Тут я точно смотрела, потому что хотела слить две записи - эту и еще одну. У меня получилось порядка 68 тыс. знаков, дневник мне сказал, что многовато.
Соответственно, записи слить не получилось, и перед тем, как выложить, я проверила, сколько знаков в одной их них.
По статистике Ворд там отказалось 30 тыс. знаков.
Я посчитала, что во второй, соответственно, 38 тысяч.
Раньше ваше ограничение я вычислила методом тыка - нельзя было выкладывать больше 45 тыс. знаков с пробелами. Что мне делать сейчас?
дайри обрезают посты в произвольном порядке. Что с этим делать?
Вы понимаете в чем проблема. У вас считалка выскакивает при превышении количества знаков с пробелами. То есть она считает текстовое представление. И мне, например, в голову не приходило, что нужно считать хтмл-код, это нелогично и ненормально в данном случае.
Кроме того, я не понимаю. У вас раньше была возможность отсекать превышение - запись, в которой симолов было больше, чем позволено, просто схлопывалась (текст исчезал). Неприятно, конечно, но все же лучше, чем обнаружить через сутки, что ты полутора тысячам человек порвал ленту.