Задать вопрос
@frees2

Как в моем случае облагородить код, сделать красивей, не руша логику?

Тестирую историю, вроде все работает, демо для тестирования на
www.dulsky.eu/v/6sPiPA4ogwA
История обновляется внизу, смотришь и переключаешь историю, хоть браузером.

Но будучи в js быдлокодером, хотелось спросить, как облагородить код, сделать красивей, не руша логику? (JSON.stringif позволяет загружать с любого места и все что угодно, но тут всего лишь строка.
history.pushState(\''.$videoId.'\', null, \''.$videoId.'\') ;
где videoId может быть лентой JSON )
var i = 0;
(function(history)
{ var pushState = history.pushState;
history.pushState = function(state)
 { if 
(typeof history.onpushstate == "function")

{history.onpushstate({state: state});} 

return pushState.apply(history, arguments); }})
(window.history);
window.onpopstate = history.onpushstate = function(e)
{ 
i++; test=JSON.stringify(e.state);
var reg_pusto = test;
if (reg_pusto.length>10)
{ test =test.replace(/"/g,"");
loc =window.location.pathname;
loc = loc.substr(3,52);
loc =loc.replace(/=list=/g,"&list=");
locris = loc.substr(0,11);
 if (locris.length<11) {locris2=''} 
else
{ locris2= '<span onclick="ytplayer.loadVideoById(\''+loc+ '\', 0);return false"><img src="https://i1.ytimg.com/vi/'+ locris + '/default.jpg" align="left" width="120" height="70"></span>' };
if (test==loc) { test2= ' ' ;}
 else
{ test2='<span onclick="ytplayer.loadVideoById(\''+ test + '\', 0);return false"><img src="https://i1.ytimg.com/vi/'+ test + '/default.jpg" align="right" width="120" height="70"></span>' ; };
$('#ms').html(''+ test2 + ''+i+''+ locris2 + ''); }
else{  };};
  • Вопрос задан
  • 3176 просмотров
Подписаться 2 Оценить Комментировать
Решение пользователя Павел Осадчук К ответам на вопрос (4)
xakpc
@xakpc
full-stack .net developer, CEO Leecero.com
Я не знаю js но общие принципы рефакторинга подскажу.
1) покройте изменяемый код тестами
2) устраняйте дублирование, по одному за раз
3) устранили, запускайте тесты
4) продолжать до полного удовлетворения кодом
Ответ написан