Оптимизация кода голосования за комментарии

Изучая проблему «тяжести» страниц при большом количестве комментариев, думую не я один, увидели следующую картину…

У каждого комментария код на Лайвстрите:
<span id="comment_vote_self_12" style="display: none;">
<img src="http://test4.ru/templates/skin/habra/img/vote_comment_down_gray.gif" border="0" alt="-" title="нельзя голосовать за свой комментарий"> 
<img src="http://test4.ru/templates/skin/habra/img/vote_comment_up_gray.gif" border="0" alt="+" title="нельзя голосовать за свой комментарий"></span>	
<span id="comment_vote_is_vote_up_12" style="display: none;">
<img src="http://test4.ru/templates/skin/habra/img/vote_comment_down_gray.gif" border="0" alt="-" title="вы уже голосовали за этот комментарий"> 
<img src="http://test4.ru/templates/skin/habra/img/vote_comment_up.gif" border="0" alt="+" title="вы уже голосовали за этот комментарий"></span>
<span id="comment_vote_is_vote_down_12" style="display: none;">
<img src="http://test4.ru/templates/skin/habra/img/vote_comment_down.gif" border="0" alt="-" title="вы уже голосовали за этот комментарий"> 
<img src="http://test4.ru/templates/skin/habra/img/vote_comment_up_gray.gif" border="0" alt="+" title="вы уже голосовали за этот комментарий"></span>
<span id="comment_vote_ok_12" style="display: inline;"><a href="#" onclick="ajaxVoteComment(12,-1); return false;"><img src="http://test4.ru/templates/skin/habra/img/vote_comment_down.gif" border="0" alt="-" title="плохой комментарий"></a>
<a href="#" onclick="ajaxVoteComment(12,1); return false;"><img src="http://test4.ru/templates/skin/habra/img/vote_comment_up.gif" border="0" alt="+" title="хороший комментарий"></a></span>
<span id="comment_vote_anonim_12" style="display: none;">
<img src="http://test4.ru/templates/skin/habra/img/vote_comment_down_gray.gif" border="0" alt="-" title="для голосования необходимо авторизоваться"> 
<img src="http://test4.ru/templates/skin/habra/img/vote_comment_up_gray.gif" border="0" alt="+" title="для голосования необходимо авторизоваться">
</span>
<script>showCommentVote('comment_vote_anonim',12);</script>

Тоесть, здесь заложены 5 событий, 4ре из которых невидимые (display: none;) и одно видимое (display: inline;)
Это неимоверно утяжеляет html страницу, как вчера выяснилось,
например для топика с 200 комментами, с 500 до 800 кб (более 50%). Одними средствами css тут не обойтись, я сейчас этм занимаюсь, но процесс все равно останется неоптимизированным…

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

Код, обрабатывающий showCommentVote:
<script type="text/javascript">
var currentShowForm=-1;

function showCommentForm(reply) {	
	if (document.getElementById('reply_'+currentShowForm)) {		
		var div_form_comment=document.getElementById('reply_'+currentShowForm);
		div_form_comment.style.display='none';
	} else {
		var div_form_comment=document.getElementById('form_comment');
	}
	var div_reply=document.getElementById('reply_'+reply);
	
	var form_comment_reply=document.getElementById('form_comment_reply');
	
	document.getElementById('text_preview').innerHTML='';
	
	form_comment_reply.value=reply;
	var s=div_form_comment.innerHTML;
	div_form_comment.innerHTML='';	
	div_reply.innerHTML=s;		
	div_reply.style.display='block';	
	currentShowForm=reply;
	document.getElementById('form_comment_text').focus();
}
</script>


У каждого комментария на Хабре такой код:
<a href="#" rev="vote-against" class="vote_minus" title="Плохой комментарий" onclick="return Voter.vote(event, this, 'post_comment', 'minus');"> </a>
<a href="#" rev="vote-for" class="vote_plus" title="Хороший комментарий" onclick="return Voter.vote(event, this, 'post_comment', 'plus');"> </a>


как говорится, почувствуйте разницу…

11 комментариев

avatar
этого ничего не будет в новом шаблоне с новым дизайном
  • ort
  • +2
avatar
отлично, а можешь выложить код как будет? чтобы вставить в свой дизайн/шаблон? или код еще не готов?
avatar
поддерживаю!
avatar
такой код есть во всех голосованиях, но он не так критичен как именно там, где голосуют за комментарии, где его столько, сколько комментариев…
avatar
в новом шаблоне с новым дизайном
А вообще, в перспективе, ведь будет? =)) (читать голосом Фродо)
avatar
Я думаю, Макс имел ввиду, что в новом шаблоне/дизайне будет новый метод обработки голосования… ;) более оптимизированный
avatar
Нам пока и остается — только думать )) Но в любом случае любые обновления приветствуются всегда :)
avatar
Добрый день,
если создать запись в личном блоге как закрытую, она не отобразится на главной, как и положено. При комментировании записи закрытого блога пост появляется в прямом эфире. Извините, если баг уже известен.
avatar
да баг, но с другой стороны зачем автору комментировать свой топик, который видит только он? )
нужно поправить
avatar
всмысле запись в черновике нельзя комментировать?
avatar
оффтопик… почему многих так тянет назвать один язык программирования другим языком программирования…

p.s Сделать несложно нужно будет реализовать.
Только зарегистрированные и авторизованные пользователи могут оставлять комментарии.