Deutsch
Germany.ruФорумы → Архив Досок→ Программирование

Как вы боретесь с несовместимость браузеров?

639  
AlexNek патриот25.07.21 16:28
AlexNek
NEW 25.07.21 16:28 

Сделал веб прогу, загрузил в облако, протестировал. Не работает правильно гадина. Оказалось что запустился не тот браузер, что при локальных тестах .

То цвет колонок грида неправильно показывает, то календарь не показывает, то поле даты выводится не по заданному формату и т.п.

Есть где то сборник несовместимостей и как с ними бороться? Или брать ошибки, что найдены и рыть?

Есть Edge, Chome и FireFox - во всех немного по разному отображаются некоторые страницы.

#1 
alex445 местный житель26.07.21 02:25
26.07.21 02:25 
в ответ AlexNek 25.07.21 16:28, Последний раз изменено 26.07.21 03:02 (alex445)

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


Странно, что в Edge и Chrome по-разному отображается - они же на одном движке.


По-разному может быть, если используются, например, дефолтные стили - они в разных браузерах могут быть разными. Вообще, стремление к тому, чтобы во всех браузерах выглядело абсолютно одинаково - бесполезное. Это во флеше или другом плагинном фреймворке с собственным движком рендеринга можно было подобного добиться, а в нынешнем вебе - нет. Браузеры - это платформы, которые хоть и придерживаются определённых стандартов, но всё же отличаются. Требование к одинаковости отображения в разных браузерах сродни требованию, чтобы все браузеры стали одним.


Есть разные статьи по обеспечению совместимости и всякие валидаторы вашей разметки

7 Common Cross Browser Compatibility Issues to Avoid | BrowserStack

10 ways to avoid cross browser compatibility issues (lambdatest.com)


Объём работ большой, а толку - всё равно не добьёшься желаемого. А если добьёшься, то стоит смениться версии браузера - и может снова всё слететь. Нужно просто смириться с некоторыми несовместимостями. А ещё бывает, что попросту делают лишь под самый распространённый вариант (Хромиум, например), и отказываются от поддержки всего остального.


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

#2 
AlexNek патриот26.07.21 11:53
AlexNek
NEW 26.07.21 11:53 
в ответ alex445 26.07.21 02:25
Юзать известные фреймворки

И что из бесплатного есть для Коре?


которые работают во всех движках

откуда это узнать?


не использовать всяких экзотических вещей

Ну если редактор даты и времени - это экзотика...

Хотя лиса это и не поддерживает, Modernizr сказал, хоть и с ошибкой.


Ну и наконец, перестать писать для веба

Да всё время то под десктоп и писал, но сейчас как то уже никому не надо, только какую-то старую фигню поддерживать.

Да и уже скоро НЕТ 6 выйдет из колыбельки - надо вперед идти.


Странно, что в Edge и Chrome по-разному отображается

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


Требование к одинаковости отображения в разных браузерах

Скорее не требование, а как с этим лучше бороться.

#3 
alex445 местный житель26.07.21 16:41
NEW 26.07.21 16:41 
в ответ AlexNek 26.07.21 11:53
И что из бесплатного есть для Коре?

С коре, тем более для веба, не знаком. Я работал с ASP.NET MVC - там всё как и везде - подключаешь разные библиотеки для стилей, для привязки данных, для скриптования, или комбо "всё в одном". И для серверной части есть. Смотря что надо.


откуда это узнать?

Обычно берёте самые популярные

CSS framework - Wikipedia

и смотрите их совместимость. Например, для Bootstrap

Guide - Bootstrap Themes (getbootstrap.com)

How to Install Bootstrap in ASP.NET Core MVC - Dot Net Tutorials


Да всё время то под десктоп и писал, но сейчас как то уже никому не надо, только какую-то старую фигню поддерживать.

Рынок коробочного или загрузочного ПО для ПК как был огромным, так и остался. Профи, привыкшие к мгновенному отклику, не любят тыкать в тормозные веб-морды. Где все эти места разработчиков для ПК и кто их все позанимал и не хочет отдавать?


Да и уже скоро НЕТ 6 выйдет из колыбельки - надо вперед идти.

Я надеюсь, они там наконец-то сделают то, что пытались сделать последние лет 10-15 - кроссплатформенный UI, пригодный в том числе для мобильной разработки. Официальный, а не всякие Моно.


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

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


Скорее не требование, а как с этим лучше бороться.

100% одинаковости всегда и везде не добьётесь никогда. Это не флеш и не прочие системы с со своей встроенной единообразной отрисовкой (рендеринг). Тут каждый браузер как своя собственная система со своими отрисовками. Брузеры объединяет только то, что они типа стандартов веба придерживаются (пытаются), а так это отдельные системы, платформы, под которые можно отдельно программировать, используя их особенности (разные специальные расширения только для конкретного браузера).

#4 
AlexNek патриот26.07.21 20:37
AlexNek
NEW 26.07.21 20:37 
в ответ alex445 26.07.21 16:41
Рынок коробочного или загрузочного ПО для ПК как был огромным, так и остался.

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

То что попадается для десктопа не подходит принципе - поддержка старого спагетти кода.


Я надеюсь, они там наконец-то сделают то, что пытались сделать

ничего кардинально нового пока не заметил. Хотя для блазора и даже НЕТ 5 продвижение замечательное в некоторых местах.


От этого никак не избавиться и нужно смириться

Только вот бы пользователю или шефу это объяснить смущ

#5 
alex445 местный житель26.07.21 21:42
NEW 26.07.21 21:42 
в ответ AlexNek 26.07.21 20:37
То что попадается для десктопа не подходит принципе - поддержка старого спагетти кода.

Как вы определяете, даже не подавая резюме туда? Они же не пишут "будем поддерживать старый спагетти-код"?


Только вот бы пользователю или шефу это объяснить

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

#6 
koder патриот27.07.21 07:59
koder
NEW 27.07.21 07:59 
в ответ AlexNek 26.07.21 11:53
Ну если редактор даты и времени - это экзотика...

Ты используешь что то вроде этого(или на выходе после твоего кода в браузере получается это)?

<input type="datetime-local" ...


#7 
AlexNek патриот27.07.21 11:43
AlexNek
NEW 27.07.21 11:43 
в ответ koder 27.07.21 07:59
ты используешь что то вроде этого

Где то так: Модель+Вьюв

[DataType(DataType.DateTime)]
[Display(Name = "From")]
[Range(typeof(DateTime), "01.01.2021", "01.01.2099")]
[DisplayFormat(ApplyFormatInEditMode = false, DataFormatString = "{0:dd.MM.yyyy HH:mm}")]
public System.DateTime From { get; set; }
....
<input asp-for="From" class="form-control"/>

А в браусере получается да это

<input class="form-control" type="datetime-local"

#8 
AlexNek патриот27.07.21 11:55
AlexNek
NEW 27.07.21 11:55 
в ответ alex445 26.07.21 21:42
Как вы определяете

Ну некоторый опыт набрал. Одни софт на сайте выставили.


А если написано это

DEINE AUFGABEN:

• Eigenverantwortliche Konzeption, Weiterentwicklung und Pflege unserer Bestandssoftware


и фирма Х лет делает одну/две проги. То вероятность нарваться на спагетти код достаточно велика, особенно если там разработчик тоже Y лет работает и кто такой Unkle Bob не имеет понятия.


Попробуйте заюзать Бутстрэп

Код со своего старого проекта стащил, что то есть

<script src="https://maxcdn.bootstrapcdn.com/bootstrap/4.1.3/js/bootstrap.min.js"></script>
#9 
koder патриот27.07.21 13:58
koder
NEW 27.07.21 13:58 
в ответ AlexNek 27.07.21 11:43, Последний раз изменено 27.07.21 14:00 (koder)

Ага. Этот компонент (поле ввода типа календарь) встроен в браузер. Причем в каждый браузер по своему. А в некоторые вообще не встроено. Это означает, что если ты хочешь в подобных случаях единообразия, то пользуйся исключительно сторонними компонентами. Они имеют свой собственный ХТМЛ и ЦСС, они всегда существуют, а не только в определенных браузераh

#10 
koder патриот27.07.21 14:00
koder
NEW 27.07.21 14:00 
в ответ AlexNek 27.07.21 11:55

Ксатаи в старом бутстрапе свой календарь был, но его вроде в новых версиях удалили. Мы выдрали компонент из старой версии и догрузили как отдельную библиотеку.

#11 
AlexNek патриот27.07.21 14:40
AlexNek
NEW 27.07.21 14:40 
в ответ koder 27.07.21 13:58
то пользуйся исключительно сторонними компонентами.

Так уже и подумал, но наскоро, раньше ничего не нашел подходящего. Сейчас пока с Azure Service Fabric играюсь. Потом еще поищу.

Но интересует больше следующее - пока есть проблемы, которые нашлись. Решу эти - в новых проектах уже не будет.

Но мог бы просто и не найти. Ну или новые какие вылезут. Или только когда все шишки не набьёшь будет нормально?

#12 
AlexNek патриот27.07.21 16:24
AlexNek
NEW 27.07.21 16:24 
в ответ koder 27.07.21 14:00

Нашел вроде, но не получается заставить его работать смущ

https://getdatepicker.com/4/

#13 
alex445 местный житель27.07.21 22:06
NEW 27.07.21 22:06 
в ответ AlexNek 27.07.21 11:55

Ну некоторый опыт набрал. Одни софт на сайте выставили.


А если написано это

DEINE AUFGABEN:

• Eigenverantwortliche Konzeption, Weiterentwicklung und Pflege unserer Bestandssoftware


и фирма Х лет делает одну/две проги. То вероятность нарваться на спагетти код достаточно велика, особенно если там разработчик тоже Y лет работает и кто такой Unkle Bob не имеет понятия.

Так продуктовые фирмы, которые один-два продукта делают долгое время (выпускают новые версии) - это тоже под эти критерии подпадает. Например, Майкрософт делает Виндовс - это оно.


Или вам нужно, чтобы почаще новые продукты делались и побыстрее сдавались без возврата к ним?

#14 
hbrenner гость29.07.21 18:20
hbrenner
NEW 29.07.21 18:20 
в ответ AlexNek 25.07.21 16:28

Не сочтие за рекламу, но вот тут можно посмотреть как и что работает в каких браузерах: browserling.com

#15 
hbrenner гость29.07.21 18:24
hbrenner
NEW 29.07.21 18:24 
в ответ alex445 26.07.21 16:41, Последний раз изменено 29.07.21 18:29 (hbrenner)
Рынок коробочного или загрузочного ПО для ПК как был огромным, так и остался. Профи, привыкшие к мгновенному отклику, не любят тыкать в тормозные веб-морды. Где все эти места разработчиков для ПК и кто их все позанимал и не хочет отдавать?

Отличная тема для конца недели, даешь отдельный топик!

#16 
AlexNek патриот29.07.21 20:55
AlexNek
NEW 29.07.21 20:55 
в ответ hbrenner 29.07.21 18:20
но вот тут можно посмотреть как и что работает в каких браузерах

Это я могу и у себя глянуть и не за 3 отведенных минуты.

Вот если бы его с энтим https://validator.w3.org/

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

#17 
NightWatch коренной житель29.07.21 21:10
NightWatch
AlexNek патриот29.07.21 21:41
AlexNek
NEW 29.07.21 21:41 
в ответ NightWatch 29.07.21 21:10

Спасибо, классная штука, только в оффлайне ошибок не показывает.

И оказывается не то, что мне нужно. Смог наконец дойти до страницы ввода даты, но абсолютно ничего не сказали. Хотя как раз в лисе это и не поддерживается.

#19