1. JavaScript / Говнокод #4441

    +151

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    12. 12
    13. 13
    14. 14
    15. 15
    16. 16
    17. 17
    18. 18
    19. 19
    20. 20
    21. 21
    22. 22
    23. 23
    24. 24
    25. 25
    26. 26
    27. 27
    28. 28
    29. 29
    30. 30
    31. 31
    32. 32
    33. 33
    34. 34
    35. 35
    36. 36
    37. 37
    38. 38
    function msglist_scroll_change() {
    
    	var mailbox = Mailbox.Get();
    	if (!mailbox.mList.length && (mailbox.state == 2)) { if (splash) splash_off(); return; }
    	var scroll_height = document.getElementById("msglist_container_id").style.height;
    	var scroll_top = document.getElementById("msglist_container_id").scrollTop;
    	var delta = parseInt((parseInt(scroll_height) / mailbox.mListItemHeight) + 2);
    	
    	var first = parseInt((scroll_top / mailbox.mListItemHeight) - 1);
    	var last = parseInt(((parseInt(scroll_top) + parseInt(scroll_height)) / mailbox.mListItemHeight) + 1);
    	if (first < 0) first = 0;
    	if (last >= mailbox.mList.length) last = mailbox.mList.length - 1;
    	
    	// проверка на то, что в область видимости попало неподгруженное письмо
    	var needToLoad = 0;
    	for (var i = first; i <= last; i++) if (mailbox.mList[i].STATE == 0) needToLoad++;
    	if (!needToLoad) return; // если не надо
    
    	
    	var first = parseInt((scroll_top / mailbox.mListItemHeight) - 1 - delta);
    	var last = parseInt(((parseInt(scroll_top) + parseInt(scroll_height)) / mailbox.mListItemHeight) + 1 + delta);
    	if (first < 0) first = 0;
    	if (last >= mailbox.mList.length) last = mailbox.mList.length - 1;
    	
    	var messages_part = new Array();
    	var k = 0;
    	targetDiv = gebi("msglist_container_id");
    	inn = "";
    	for (var i = first; i <= last; i++) {
    		if (mailbox.mList[i].STATE == 0) {
    			messages_part[k] = mailbox.mList[i].ID;
    			k++;
    		}
    		tmpl_msg_loading(mailbox.mList[i].ID);
    	}
    	if (messages_part.length) ajax_get_folder_msg_list_info_part(mailbox.fId, messages_part, mailbox.recvMListInfoData, mailbox);
    	else heatFolders();
    }

    Зачем-то два раза определяют first и last...
    Может кто-нибудь объяснит?..

    istem, 25 Октября 2010

    Комментарии (17)
  2. JavaScript / Говнокод #4418

    +149

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    // Если заданное условие успешно (true)
    
    if (is_if) {
    
    	//...
    }

    Нашёл на работе. Гениальное именование переменной и гениальный комментарий.

    glazs, 22 Октября 2010

    Комментарии (14)
  3. JavaScript / Говнокод #4412

    +144

    1. 1
    if ((text == '' || text == '\n') && document.getElementById('log').innerHTML == '...')

    Вот такое говнецо я сделал. Надо исправить.
    Следуя лозунгу говнокода "Не торопитесь его удалять или рефакторить, — запостите его на говнокод.ру, посмеёмся вместе!", выкладываю.

    КЭП: document.getElementById('log').innerHTML == '...' - Фэйл, не надо завязываться на содержимое.

    Oleg_quadro, 22 Октября 2010

    Комментарии (9)
  4. JavaScript / Говнокод #4407

    +144

    1. 1
    2. 2
    3. 3
    4. 4
    if( DateDiff > 1000*60*60*24*122 ) {
    	  	 $("#mfilter_err").text("Выбран интервал времени больше 4 месяцев");
    		 return false;
    	  }

    Странное у человека представление о длине 4 месяцев

    getrix, 21 Октября 2010

    Комментарии (3)
  5. JavaScript / Говнокод #4404

    +162

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    <div style="position:relative">
    
    Всего товаров: 1<br />
    
    На сумму: 5 750,00
    
    
    
    </div>
    
    <script>$("#korzina").load("/korzina.php",{'fsdfsad':true});</script>

    Сей кодъ подгружается аяксом из скрипта /korzina.php в div#korzina. Естественно, тут же выполняется строчка номер 6, и онъ ещё раз подгружается. И ещё раз. И ещё раз...
    Долго думал, почему так тормозит браузер и почему по vnstat'у 64 кбит/с вверх и 24 вниз при простом просмотре страницы. Думаю, админ сервера (там стоит Apache, кеке) хотел бы удавить аффтара не меньше, чем я. Сайт в продакшне с марта.

    telnet, 20 Октября 2010

    Комментарии (26)
  6. JavaScript / Говнокод #4395

    +144

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    8. 8
    function LeapYear(intYear) {
    	if (intYear % 100 == 0) {
    		if (intYear % 400 == 0) { return true; }
    	}else{
    		if ((intYear % 4) == 0) { return true; }
    	}
    	return false;
    }

    Пистец %)
    надыбал скриптец в проекте при чистке. Так индусы считали високостный год %))
    походу сразу %4 не работает %) или тут зарыт какой-то мэйджик смысл? %) ы

    Pepper-X, 19 Октября 2010

    Комментарии (8)
  7. JavaScript / Говнокод #4394

    +162

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    function getAttrValue(element){
        if(element == undefined){
            return '';
        }
        return  element;
    }

    KiMindfreak, 19 Октября 2010

    Комментарии (7)
  8. JavaScript / Говнокод #4389

    +170

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    12. 12
    13. 13
    14. 14
    15. 15
    16. 16
    17. 17
    18. 18
    19. 19
    20. 20
    21. 21
    22. 22
    23. 23
    24. 24
    25. 25
    26. 26
    27. 27
    28. 28
    29. 29
    var a1 = Math.floor(Math.random()*15 + 1);
    var a2 = Math.floor(Math.random()*15 + 1);
    mismatch(2);
    var a3 = Math.floor(Math.random()*15 + 1);
    mismatch(3);
    var a4 = Math.floor(Math.random()*15 + 1);
    mismatch(4);
    var a5 = Math.floor(Math.random()*15 + 1);
    mismatch(5);
    var a6 = Math.floor(Math.random()*15 + 1);
    mismatch(6);
    var a7 = Math.floor(Math.random()*15 + 1);
    mismatch(7);
    var a8 = Math.floor(Math.random()*15 + 1);
    mismatch(8);
    var a9 = Math.floor(Math.random()*15 + 1);
    mismatch(9);
    var a10 = Math.floor(Math.random()*15 + 1);
    mismatch(10);
    var a11 = Math.floor(Math.random()*15 + 1);
    mismatch(11);
    var a12 = Math.floor(Math.random()*15 + 1);
    mismatch(12);
    var a13 = Math.floor(Math.random()*15 + 1);
    mismatch(13);
    var a14 = Math.floor(Math.random()*15 + 1);
    mismatch(14);
    var a15 = Math.floor(Math.random()*15 + 1);
    mismatch(15);

    Это и многое другое на http://ru.wikiversity.org/wiki/15_puzzle

    eval, 18 Октября 2010

    Комментарии (8)
  9. JavaScript / Говнокод #4345

    +165

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    function xchg(s,o,n)
    {	var r=s.split(o).join(n);
    	return r;
    }
    
    function toHTML(s)
    {return xchg(xchg(xchg(xchg(xchg(xchg(s,'<BR>',''),'<br>',''),'&lt;','<'),'&gt;','>'),'&amp;','&'),'\'\'','\'');}

    Кусок кода из моего скрипта Гостевой книги для Народа, добавляющей туда bb-теги, смайлы и прочие радости (сейчас там, вроде, скрипты уже вырезаются). Писалось лет 6 назад.

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

    Arigato, 12 Октября 2010

    Комментарии (3)
  10. JavaScript / Говнокод #4344

    +153

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    12. 12
    13. 13
    14. 14
    15. 15
    16. 16
    17. 17
    18. 18
    19. 19
    20. 20
    21. 21
    22. 22
    23. 23
    24. 24
    25. 25
    26. 26
    27. 27
    28. 28
    29. 29
    30. 30
    31. 31
    32. 32
    33. 33
    34. 34
    35. 35
    36. 36
    37. 37
    38. 38
    <script type="text/javascript">
    	// <![CDATA[
    	var tid=1429594;
    
    	var arr;
    	arr = new Array();var k=0;
    
    	var test;
    	function requestThread(pin) {
    		if (document.getElementById('p'+pin)) {
    			$('#t'+pin).html('<font color="#2255EE"><b>'+$('#t'+pin).html()+'</b></font>');
    			$.post('./lbitcomment.php', {u: 'http://site.livejournal.com/1429594.html?format=light&thread='+pin, i: $('#p'+pin).val()}, function (data)
    			{
    				$('#t'+pin).html(data);
    				p=p+1
    				while ((!document.getElementById('t'+arr[p])) && (p<=k)) 
    					p++;
    				if (p<=k) {
    					requestThread(arr[p]);
    				}
    				return;
    			});
    		} else {
    			p=p+1;
    			if (p<=k) 
    				requestThread(arr[p]);
    		}
    	return;
    	}
    
    	p=1;
    	$(document).ready(function(){
    		requestThread(arr[1]);	
    	});
    	
    
    	// ]]>
    	</script>

    Скрипт для разворачивания комментов ЖЖ ( http://www.hex.su/tools/open-thread/ ) добавляет в страницу такой вот код.

    seonull, 11 Октября 2010

    Комментарии (2)