rtyug

rtyug
Рейтинг
263
Регистрация
13.05.2009
Должность
perl,php,sql,javascript(jquery),freebsd/linux
Интересы
perl,php,sql,javascript(jquery),freebsd/linux
https://minfin.com.ua/blogs/94589307/115366/

все таки мало информации, я не знаю что это за система...

и может, что проблема не в этом :D

  • 11Гиг/50кб =~ 220к файлов
  • я не знаю, не смотрел как работает кэш в zfs... можно попробовать
  • про кэширование дискрипторов файлов: есть в nginx, вродебы скрипт не будет дергать ядро и фс все время как только будет чтение из файла
  • в MySQL спокойно можно хранить текст 50-70к
  • мне интересно, то как Вы размышляете, есть база 11Гиг, припустим пускай база будет 100-200Гб Oracle,
  • кстати, SUN разрабатывает новую ФС которая будет без ограничений и высокопроизводительная... написано, что инфорация о ней не доступна...
  • есть аналогичные распределенные ФС коммерческие и не коммерческий, например, MogileFS
ReifTer:
Такой вариант должен работать



$(".menu_click").click(function(){

top.location = $(this).attr('href');

});

нет, не работает:


.................

//markup
var button = $('<a href="#" class="jquery-ui-themeswitcher-trigger"><span class="jquery-ui-themeswitcher-icon"></span><span class="jquery-ui-themeswitcher-title">'+ options.initialText +'</span></a>');
var switcherpane = $('<div class="jquery-ui-themeswitcher"> <div id="themeGallery"> <ul> <li><a class="menu_click" href="http://jqueryui.com/themeroller/css/parseTheme.css.php"> <img src="http://www.x0.org.ua/images/79/thumbnail/2118.jpg" alt="UI Lightness" title="UI Lightness" /> <span class="themeName">UI lightness</span> </a></li> <li><a class="menu_click" href="http://jqueryui.com/themeroller/css/parseTheme.css.php"> <img src="http://www.x0.org.ua/images/79/thumbnail/2118.jpg" alt="UI Lightness" title="UI Lightness" /> <span class="themeName">UI lightness</span> </a></li> </ul> </div></div>').find('div').removeAttr('id');

$(".menu_click").click(function(){
top.location.href = $(this).attr('href');

});


.............

попробуй нажать там где комментарии:

http://www.x0.org.ua/photo/view/79/2120

(на самой странице кода много)

(но когда я нажимаю, то не работает, в консоле нету ничего...)

rtyug добавил 15-01-2011 в 08:24

UPD:

добавил:


/* Theme Loading
---------------------------------------------------------------------*/
switcherpane2.find('a').click(function(){


options2.onSelect();
if(options2.closeOnSelect && switcherpane2.is(':visible')){
top.location.href = $(this).attr('href');
switcherpane2.spHide(); }
return false;
});


top.location.href = $(this).attr('href');

UPD2:

есть вопрос:

я хочу поставить несколько таких списков...

из поставил...

но когда нажимаю на левый список, то открывается правый список...

http://www.x0.org.ua/photo/view/79/2120 (там где комментарии)

я все классы поменял на другие имена...

Но оно все равно открывает правый список, тогда когда нажимаю на левый...

как это исправить?

исходники:


<script>
$(document).ready(function(){
$('#switcher').themeswitcher();

$('#switcher2').themeswitcher2();

});
</script>


<tr><td align='center' >
<div id="switcher"></div>
</td><td align='center' >
<div id="switcher2"></div>
</td></tr>




<script type="text/javascript">
/* jQuery plugin themeswitcher
---------------------------------------------------------------------*/


$.fn.themeswitcher2 = function(settings2){
var options2 = jQuery.extend({
loadTheme: null,
initialText: 'Switch Theme',
width: 150,
height: 200,
buttonPreText: 'Theme: ',
closeOnSelect: true,
buttonHeight: 14,
cookieName: 'jquery-ui-theme',
onOpen: function(){},
onClose: function(){},
onSelect: function(){}
}, settings2);

//markup
var button = $('<a href="#" class="jquery-ui-themeswitcher-trigger2"><span class="jquery-ui-themeswitcher-icon2"></span><span class="jquery-ui-themeswitcher-title2">'+ options2.initialText +'</span></a>');
var switcherpane2 = $('<div class="jquery-ui-themeswitcher2"> <div id="themeGallery2"> <ul> <li><a href="http://www.x0.org.ua/photo/view/79/21210"> <img src="http://www.x0.org.ua/images/79/thumbnail/2121.jpg" alt="UI Lightness" title="UI Lightness" /> <span class="themeName">UI lightness</span> </a></li> <li><a href="http://www.x0.org.ua/photo/view/79/2122"> <img src="http://www.x0.org.ua/images/79/thumbnail/2122.jpg" alt="UI Lightness" title="UI Lightness" /> <span class="themeName">UI lightness</span> </a></li> </ul> </div></div>');



//button events
button.click(
function(){
if(switcherpane2.is(':visible')){ switcherpane2.spHide(); }
else{ switcherpane2.spShow(); }
return false;
}
);

//menu events (mouseout didn't work...)
switcherpane2.hover(
function(){},
function(){if(switcherpane2.is(':visible')){$(this).spHide();}}
);

//show/hide panel functions
$.fn.spShow = function(){ $(this).css({top: button.offset().top + options2.buttonHeight + 6, left: button.offset().left}).slideDown(50); button.css(button_active); options2.onOpen(); }
$.fn.spHide = function(){ $(this).slideUp(50, function(){options2.onClose();}); button.css(button_default); }


/* Theme Loading
---------------------------------------------------------------------*/
switcherpane2.find('a').click(function(){


options2.onSelect();
if(options2.closeOnSelect && switcherpane2.is(':visible')){
top.location.href = $(this).attr('href');
switcherpane2.spHide(); }
return false;
});

//function to append a new theme stylesheet with the new style changes
function updateCSS(locStr){
var cssLink = $('<link href="'+locStr+'" type="text/css" rel="Stylesheet" class="ui-theme" />');
$("head").append(cssLink);


if( $("link.ui-theme").size() > 3){
$("link.ui-theme:first").remove();
}
}

/* Inline CSS
---------------------------------------------------------------------*/
var button_default = {
fontFamily: 'Trebuchet MS, Verdana, sans-serif',
fontSize: '11px',
color: '#666',
background: '#eee url(http://jqueryui.com/themeroller/themeswitchertool/images/buttonbg.png) 50% 50% repeat-x',
border: '1px solid #ccc',
'-moz-border-radius': '6px',
'-webkit-border-radius': '6px',
textDecoration: 'none',
padding: '3px 3px 3px 8px',
width: options2.width - 11,//minus must match left and right padding
display: 'block',
height: options2.buttonHeight,
outline: '0'
};
var button_hover = {
'borderColor':'#bbb',
'background': '#f0f0f0',
cursor: 'pointer',
color: '#444'
};
var button_active = {
color: '#aaa',
background: '#000',
border: '1px solid #ccc',
borderBottom: 0,
'-moz-border-radius-bottomleft': 0,
'-webkit-border-bottom-left-radius': 0,
'-moz-border-radius-bottomright': 0,
'-webkit-border-bottom-right-radius': 0,
outline: '0'
};



//button css
button.css(button_default)
.hover(
function(){
$(this).css(button_hover);
},
function(){
if( !switcherpane2.is(':animated') && switcherpane2.is(':hidden') ){ $(this).css(button_default); }
}
)
.find('.jquery-ui-themeswitcher-icon').css({
float: 'right',
width: '16px',
height: '16px',
background: 'url(http://jqueryui.com/themeroller/themeswitchertool/images/icon_color_arrow.gif) 50% 50% no-repeat'
});
//pane css
switcherpane2.css({
position: 'absolute',
float: 'left',
fontFamily: 'Trebuchet MS, Verdana, sans-serif',
fontSize: '12px',
background: '#000',
color: '#fff',
padding: '8px 3px 3px',
border: '1px solid #ccc',
'-moz-border-radius-bottomleft': '6px',
'-webkit-border-bottom-left-radius': '6px',
'-moz-border-radius-bottomright': '6px',
'-webkit-border-bottom-right-radius': '6px',
borderTop: 0,
zIndex: 999999,
width: options2.width-6//minus must match left and right padding
})
.find('ul').css({
listStyle: 'none',
margin: '0',
padding: '0',
overflow: 'auto',
height: options2.height
}).end()
.find('li').hover(
function(){
$(this).css({
'borderColor':'#555',
'background': 'url(http://jqueryui.com/themeroller/themeswitchertool/images/menuhoverbg.png) 50% 50% repeat-x',
cursor: 'pointer'
});
},
function(){
$(this).css({
'borderColor':'#111',
'background': '#000',
cursor: 'auto'
});
}
).css({
width: options2.width-30,
height: '',
padding: '2px',
margin: '1px',
border: '1px solid #111',
'-moz-border-radius': '4px',
clear: 'left',
float: 'left'
}).end()
.find('a').css({
color: '#aaa',
textDecoration: 'none',
float: 'left',
width: '100%',
outline: '0'
}).end()
.find('img').css({
float: 'left',
border: '1px solid #333',
margin: '0 2px'
}).end()
.find('.themeName').css({
float: 'left',
margin: '3px 0'
}).end();



$(this).append(button);
$('body').append(switcherpane2);
switcherpane2.hide();


return this;
};







</script>




rtyug добавил 15-01-2011 в 09:17

UPD3:

сделал!

надо было изменить имена этих функций в другом списке:


$.fn.spShow = function(){ $(this).css({top: button.offset().top + options.buttonHeight + 6, left: button.offset().left}).slideDown(50); button.css(button_active); options.onOpen(); }
$.fn.spHide = function(){ $(this).slideUp(50, function(){options.onClose();}); button.css(button_default); }

т.е. поставить:

$.fn.spShow2

$.fn.spHide2

G.Vad!k:
Возможно для этих целей понадобится это

я нашел вот на jquery UI

исходники http://jqueryui.com/themeroller/themeswitchertool/

http://jqueryui.com/docs/Theming/ThemeSwitcher

все работает, но я не понимаю, как сделать редирект при нажатии на кликабельную картинку??

я пробовал:

 $(".menu_click").click(function(){


top.location.href = $(".menu_click").attr('href');

});

в консоле firefox ничего не было...

как и куда тут http://jqueryui.com/themeroller/themeswitchertool/ добавить, чтобы при щелчке был редирект...?

пробовал много раз - никак не хочет...

Alexius:
Посмотрите плагин jquery lazy load

сделал, так как написано: http://www.x0.org.ua (Все последние фотографии:)

но при загрузке страницы, все картинки оно показывает, а потом скрывает, какой же тут физический смысл?

...надо бы чтобы их не показывать... а только при перемещении курсора

если постаивть:

(чтобы скрыть картинки)

.pf_news { display:none; }

то оно грузит сильно грузит браузер

попробую, тогда разбить на части, чтобы не так грузило

snk001:
Никаких координат не надо. К-во одновременно видимых картинок известно? Да. По мере прокрутки на 1шт. создается следующая картинка (вне видимой области).

я просто не понял, как это сделать, тут с помощью lazy load?

rtyug добавил 11-01-2011 в 15:35

Alexius:
Посмотрите плагин jquery lazy load

спасибо, это вродебы то что надо!

вот демо:

http://www.appelsiini.net/projects/lazyload/enabled.html

Mage1:
Профилирование показывает, что больше всего времени при исполнении скриптов тратится именно на чтение текстовых файлов (винты 3xSATA в массиве ZFS raidz).

...много их и что за файлы?

может быть посмотреть скрипты, например, используется ли там буферизация при чтении файлов?

может быть использовать AIO (ассинхронный ввод/вывода)

так же может быть кэшировать дескрипторы открываемых файлов в скрипте...

файлы стоят в одном каталоге? может в ввиде кэша по каталогам их расставить...

может быть использовать PostgreSQL или какую-то распределенную систему для хранения и отдачи файлов... (картинки и т.д.)

ZFS - не хранит данные распределенно, а только очень надежная FS

я вижу только один вариант:

как только пользователь поставит курсор мышки в самом низу, в нижней части на картинки, то выполнить функцию которая подгрузит картинки...

$("img").mouseover(function() {

/* здесь делаем то что надо делать */
});

======

в идеально случае то, что я хотел, наверное, как-то не реально делается, нужно координакты выситывать, и ввести учет кусков HTML которые в прокрутке...

Posting_i_PIAR:
если нашли где посмотреть, то пол дела уже сделали. Скачать попробуйте через изучение ХТМЛ кода.

почти везде передача видео идет через стримминг прямо во flash

нужно найти или писать грабер который будет считывать поток с STDIN - геморой!

а там где скачал, там фигня...

на youtube качество видео хреновое

1) top

2) нагрузку на винчестер надо посмотреть

Collapse:
На каждом сайте будет порядка 10к-30к страниц.

размер статьи?

если статьи довольно большие (от 2-5Мб), то может быть будет лучше отдавать как статику, может PgSQL+nginx

или постраничный вывод сделать

как на счет полнотекстового поиска? (хотя MySQL, тоже будет не лучший вариант)

если на файлах: ядро ОС будет тратить много ресурсов на то чтобы открывать эти файлы, можно попробовать кэшировать дескрипторы файлов (есть в nginx), размещать статьи в виде кэша, а не в одном каталоге 100к файлов! (100к файлов - это уже очень плохо)

попробовать может быть файловую систему какую-то там FastFS

если не хватит ресурсов сервера, можно СУБД реплицировать на несколько серверов и балансировщик httpd поставить на эти сервера, который будет отдавать...

кстати, есть связка MogileFS+Perlbal (протестированная на миллионы пользователей) для отдачи файлов с распределенного многоуровневого хранилища

вообще-то мало информации в первом посте, так что как говорится фигня будет и так и так 😂

я бы попробовал PosgreSQL, но можно любую связку

Всего: 2055