Правила     Закладки     Карма    Календарь    Журналы    Помощь    Поиск    PDA    Чат   
        СМС-ки
   
Пейджер выключен!
 
Фильтр авторов:    показать 
  скрыть
  Ответ в темуСоздание новой темыСоздание опроса

> Единая валидация на сервере и клиенте
Invis1ble  
 ۩  Дата
Цитировать сообщение

Пользователя сейчас нет на форуме




******

Профиль
Группа: Эксперт
Группа переписки
Сообщений: 11783
Пользователь №: 23195
На форуме: 6 лет, 4 месяца, 9 дней
Карма: 428

Трезвый :
7 лет, 3 месяца, 9 дней


Помню давненько где-то, кажется на хабре, проскакивала инфа о вроде-бы протоколе (готовой реализации? формате данных?) для расшаривания правил валидации между сервером и клиентом.
Кто-нибудь припоминает что-то такое? А то я заинтересовался тогда, но не было времени копнуть глубже. Ссылку не сохранил и найти теперь ничего не могу такого.
Или может есть идеи получше? Надоело писать одно и то же дважды, а потом ещё и не забывать синхронизировать при изменениях в правилах.


--------------------
PMПисьмо на e-mail пользователюСайт пользователя
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
brevis  
Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Здесь живет
******

Профиль
Группа: Форумчанин
Завсегдатай форума
Сообщений: 264
Пользователь №: 39616
На форуме: 2 года, 6 месяцев, 20 дней
Карма: 31






--------------------
PMПисьмо на e-mail пользователю
    1   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
Invis1ble  
 ۩  Дата
Цитировать сообщение

Пользователя сейчас нет на форуме




******

Профиль
Группа: Эксперт
Группа переписки
Сообщений: 11783
Пользователь №: 23195
На форуме: 6 лет, 4 месяца, 9 дней
Карма: 428

Трезвый :
7 лет, 3 месяца, 9 дней


brevis
Вроде бы оно.

Кто-нибудь пользуется чем-то подобным?


--------------------
PMПисьмо на e-mail пользователюСайт пользователя
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
Guest  
Дата
Цитировать сообщение


Гость пожелал остаться неизвестным

Unregistered









Похоже ajax validation лучшее решение. Часто правила валидации может проверить только сервер, на занятость email адреса и т.д. Соответственно проще вообще не писать клиентскую валидацию, в фоне посылать ajax запрос на валидацию данных перед отправкой формы. Юзер экспириенс особо не пострадает, будет медленее, но без проблем описанных выше.

Если full javascript application, то валидацию можно попробовать расшарить между сервером и клиентом.
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
Invis1ble  
 ۩  Дата
Цитировать сообщение

Пользователя сейчас нет на форуме




******

Профиль
Группа: Эксперт
Группа переписки
Сообщений: 11783
Пользователь №: 23195
На форуме: 6 лет, 4 месяца, 9 дней
Карма: 428

Трезвый :
7 лет, 3 месяца, 9 дней


Guest
То, что проще полностью на сервер валидацию переложить - это бесспорно. Я реализовывал оба подхода на практике. Да, двойную валидацию реализовывать геморно, с этим тоже никто не станет спорить, я думаю.
Но сейчас речь идёт не о том, как проще, а о том, как лучше с точки зрения пользователя. Всё же валидация на клиенте приводит к лучшей отзывчивости интерфейса, хоть это и не сильно заметно. Но поскольку это практически двойная работа, то и стоит вопрос об упрощении для программиста.
На прошлом проекте я даже написал велосипед для трансляции правил валидации на фронтэнд с помощью стандартных атрибутов полей форм (Symfony Forms), типа required/maxlength и т.д., к которым добавлялись кастомные вроде data-rule-* (правило) + data-msg-* (текст ошибки). А на фронтэнде валидация проводилась с помощью jQuery Validation. В принципе, получилось неплохо, но завязано на html как "транспорт" by desing.
Думаю, в идеале должно быть какое-то более универсальное решение. Вот его я и ищу. Кстати, в упомянутой выше статье проскочила инфа о JSON Schema. Попробую покопать в эту сторону, похоже, это то, что я изначально искал.
Интересует опыт тех, кто решал подобные задачи.


--------------------
PMПисьмо на e-mail пользователюСайт пользователя
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
Guest  
Дата
Цитировать сообщение


Гость пожелал остаться неизвестным

Unregistered









Я понял. Ну да, теоретически можно попробовать описать правила валидации с помощью json schema или другой спецификации. Затем на сервере валидировать их с помощью библиотеки для php, на клиенте соответственно с помощью библиотеки для javascript.

Вообще было бы интересно узнать, как это сделано у гигантов индустрии. Посмотрел gmail, facebook, twitter у всех есть клиентская валидация. Интересно как делают.
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
Guest  
Дата
Цитировать сообщение


Гость пожелал остаться неизвестным

Unregistered









@anonymous1
ты когда в яндексе работал, у вас в веб интерфейсе была клиентская валидация?
на javascript
Если была то как её делали? Это же помоему не выгодно для программиста сначала писать валидацию для сервера, потом для клиента.

@anonymous2
Нет, когда я работал там в биллинге все было на xslt и в нем же там какая-то валидация своя

@anonymous1
а где можно этот самый биллинг посмотреть в работе

@anonymous2
Только если купишь что-нибудь, ну там дирет, маркет. Да че там смотреть? Это не то, что тебе нужно по-моему

@anonymous1
Да я просто не пойму как делают валидацию. Она нужна на сервере и на клиенте. Но писать её два раза как-то стремно

@anonymous2
Ну пиши на метеоре все, там один раз пишешь валидацию, она используется на сервере и клиенте

@anonymous1
А как быть чувакам у кого сервер на php или на питоне

@anonymous2
Ну надо два раза валидацию писать


приговорил пхп программистов user posted image
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
Гость_Invis1ble  
Дата
Цитировать сообщение


Гость пожелал остаться неизвестным

Unregistered









Цитата (Guest @ 28.08.2016 - 01:07)
приговорил пхп программистов

Да он просто не в теме, вот я сегодня при беглом поиске что нашёл:
для Symfony - https://github.com/KnpLabs/KnpJsonSchemaBundle
для Angular 2 (для первого тоже есть, но я ковыряю второй) - https://github.com/makinacorpus/angular2-schema-form
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
Гость_Invis1ble  
Дата
Цитировать сообщение


Гость пожелал остаться неизвестным

Unregistered









PS. Думаю, если поработать напильником, то можно будет пользоваться.
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
Guest  
Дата
Цитировать сообщение


Гость пожелал остаться неизвестным

Unregistered









Модуль для ангуляра подсвечивает поля, но нет сообщений об ошибках http://makinacorpus.github.io/angular2-sch...rm/#/playground и в ридме ничего об этом нет. Массивы и вложенные схемы не поддерживает https://github.com/makinacorpus/angular2-sc...a-form/issues/4

Бандл для симфони помоему бросили так и не доделав до конца.

Но вообще интересно. Пробовал json schema некоторое время назад, но что-то ничего хорошего тогда не получилось. Мне нужно валидировать вложенные друг в друга структуры и всё это нужно как-то вменяемо отображать в Angular 1.5
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
  Быстрый ответ
Информация о Госте
Введите Ваше имя
Кнопки кодов
Для вставки цитаты, выделите нужный текст и
НАЖМИТЕ СЮДА
Введите сообщение
Смайлики
:huh:  :o  ;) 
:P  :D  :lol: 
B)  :rolleyes:  <_< 
:)  :angry:  :( 
:unsure:  :blink:  :ph34r: 
     
Показать всё

Опции сообщения  Включить смайлики?
 Включить подпись?
 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:

Опции темы Ответ в темуСоздание новой темыСоздание опроса