Алексей Скляров: когда вы пишете translateдвижок переводит его в matrix (проверьте сами с помощью getComputedStyle), так что ни о каком выигрыше в производительности речи быть не может. Наоборот, браузеру проще использовать matrix, но на практике нет смысла возиться с преобразованиями, лучше использовать translate.
Вам Соколов верное направление мысли дал - вам надо просто не все их отрисовывать, а только те которые находятся в области видимости (или уже там находились). Как это сделать - примеры лучше искать в интернетах.
Сергей: в любом случае, в вашем ответе вы ссылаетесь на тот же вопрос, к которому пишете ответ, таким образом фраза " я там тоже самое по моему написал" верна только технически, т.к. вы и правда там писали то же самое, ибо вы ссылаетесь на этот самый ваш ответ.
fomenko_alexandr: во-первых, ТС сказал что он не может править скрипт. То есть скорее всего просто не хочет, но это уже не важно. Во-вторых, предлагать синхронную загрузку это сумасбродство.
Елисей Басенко: дело не в отсутствии единиц, дело именно в том, что не каждое устройство вывода (монитор) даёт достоверную информацию о себе. Информация берётся из EDID, а формат EDID предусматривает запись только целых чисел, ну и в связи с этим, вероятно, возможны погрешности, т.к. размеры матриц редко кратны сантиметру.
У каждого производителя видеоадаптеров есть на сайте софт, позволяющий смотреть EDID. Берёте эту программку, смотрите на EDID, смотрите на байты 21 и 22, которые обозначают соответственно ширину и высоту матрицы. Именно эти значения используются браузером. У моего монитора например в EDID записаны значения 47 и 27, а по факту измерения получились равны 47.6 и 26.7.
Так что cm в CSS это то что вам нужно, браузер честно считает вам сантиметр на основе этих данных, просто производители не запариваются и используют такой формат EDID, который не предусматривает запись дробей, хотя это решило бы проблему.
Поэтому до сих пор самым надёжным способом получить информацию о масштабах дисплея остаётся попросить пользователя взять линейку, померить матрицу и сообщить данные вам.
Отвечая на вопрос "что я делаю не так": всё просто - вы не возвращаете значение из функции apiSend. Вот checkWin у вас возвращает значение, конечно не то которое нужно но всё же ключевое слово return есть:
function checkWin() {
...
return res;
}
А apiSend у вас возвращает undefined, т.к. вы в функции нигде не пишете return:
function apiSend(/* arguments */) {
$.ajax(/* options */);
}
Вы просто выполняете функцию $.ajax и всё.
Конечно это не решает проблему, зато наглядно демонстрирует тот факт, что вы из функции ничего не возвращаете.
Alexey: это я понял. Дело в том, что код у вас правильный логически - из правильного значения 'lang' получается правильная строка для печеньки. Проблема может быть только в этом самом значении. А в свете первого комментария к вашему вопросу ("Последний фрагмент — это PHP-сериализатор") создаётся впечатление, что вы неправильно генерируете HTML.
"Класс который определяет тип минус фразы, и создает необходимый класс" - вот тут я уже совсем потерялся. Под последним словом "класс" вы подразумевали "объект"?