LINUX.ORG.RU

Сообщения KanikulyKun

 

Реализация кнопки «Like» без JS

Форум — Web-development
  1. Делаем обычную кнопку:
    <form method="post" action="/path/to/like/somePost123456">
    	<input type="submit" value="Like" />
    </form>
    
  2. На сервере, при обработке запроса, возвращаем статус «204 No Content»:
    // handleLikes handles POST requests at /path/to/like/:postID.
    func handleLikes(w http.ResponseWriter, r *http.Request) {
    	// Do something meaningful with the request here...
    
    	// Return the HTTP status number 204.
    	w.WriteHeader(http.StatusNoContent)
    }
    
  3. Декорируем кнопку из пункта 1 с помощью CSS, чтобы после нажатия она становилась неактивной.
  4. Профит. Страница после нажатия не перезагружается, лайки работают, как если бы был JS.

Вопрос: можно ли ещё с помощью каких-нибудь (помимо JS) ухищрений прозвести частичную перерисовку страницы? В данном случае это необходимо, например, чтобы показать количество лайков или отобразить, что запрос до сервера таки дошёл. Какая-нибудь фича SVG, XML? Ничего там не предусмотрено для этого? Почему iframes не популярен для данных целей, учитывая, что в HTTP/2 количество запросов к серверу не принципиально?

 , , , ,

KanikulyKun
()

За время существования Go, кто-нибудь хоть 1 большой web проект на нём запилил?

Форум — Web-development

Словно Lisp на ЛОРе, все в один голос советуют «просто использовать стандартную библиотеку». Но кто-нибудь следовал этому совету? Не могу найти ни одного проекта, все либо используют фреймворки (что карается отлучением из Go сообщества), либо в результате разрабатывают свой страшно закрученный фреймворк и таки используют фреймворк.

Самое масштабное, что нашёл - Go Playground: одна html страница и пара-другая URL'ов JSON'а, реализация выглядит IMO по-уродски. Тут мы знакомимся с паттерном f1(f2(fN(SomeHandlerFn)))), где fN:

func fN(f http.HandlerFunc) http.HandlerFunc {
	return func(w http.ResponseWriter, r *Request) {
		// Do something useful here...
		f(w, r) // Call the received handler function.
	}
}
что страшно напоминает callback'и в JavaScript. Не представляю, как таким макаром можно что-то более сложное написать: i18n, CSRF tokens, много форм, профиль пользователя, авторизация - вот это всё. Это же PHP4 style получится, только более низкоуровнево и многословно. И это, типа, эталон кода от главных разработчиков?

 , ,

KanikulyKun
()

RSS подписка на новые темы