Обява

Свий
Няма добавени обяви.

Разни въпроси към WEB-аджиите...

Свий
X
 
  • Филтър
  • Час
  • Покажи
Изчисти всичко
нови мнения

  • От: Разни въпроси към WEB-аджиите...

    Защо не комбинирате nginx + php-fpm и някакво просто скриптче?
    Така ще стане в пъти по-лесно от колкото да се опитвате да постигнете стабилност с език, който е известен с проблемите си с менажирането на паметта.
    Ако трябва в последствие информацията да се пише/чете към/от база просто използвайте опашки(двете най-лесни са ZeroMQ & Gearman).
    One Planet, One Internet!
    We Are All Connected!

    Nissan Patrol GR Y61 RB25DET NEO(Skyline)

    Коментар


    • От: Разни въпроси към WEB-аджиите...

      Трябва ми нещо с което да създам grid(като във фотошоп, 3д студио и други графични програми), дето да седи като фон на даден div. Демек хоризонтални и вертикални линии, които образуват квадрати. В този div съдържанието ще се скролва/паннва, като респективно и фона ще трябва да може да го прави безкончено. Търся нещо готово (jquery плуджин или подобно). С голям png или наложена чрез z-index <table style=""border-collapse: collapse;"> ми се струва идиотско....
      WG 2.7 CRD

      Коментар


      • От: Разни въпроси към WEB-аджиите...

        Може и с малък PNG (колкото едно квадратче) и малко javascipt, обработващ "scroll" ивента. Ама до колко ще е добре без проба - не знам.

        Другото е - в големия DIV да сложиш вътрешен DIV, в който да е текстра, да не му задаваш твърд размер,на него да сложиш повтарящо се малко PNG за background-image, да сложиш на външния DIV "overflow:scroll". Так де-факто целия текст заедно с фона ще ти е статичен, а ще го скролваш през големия. Скролбара също ще ти излезе на големия.

        Сега, ако искаш по редове и колони да да отговаря на редовете/колоните от текста, вече става малко по-сложно.

        ...и не на последно място - в WEB някои неща по принцип си се правят изчекнато, та не прекалявай съвсем в търсенето на максимално изчистени решения - понякога такива просто не съществуват.

        Бе има много начини да се направи, всеки с предимствата и недостатъците си. Просто не мога да разбера заднатата ти мисъл зад това. По принцип връзване на не-векторни изображения към векторен текст изглежда гадно при всяки друг скалинг, освен 100%.
        Интернет експлорър: Безплатно предоставян от Майкрософт тул за сваляне на браузер по избор.

        Коментар


        • От: Разни въпроси към WEB-аджиите...

          Ето ти го втория подход, на живо. Изцяло с CSS и повтарящо се background-image. никакви плъгини не ти трябват за тоя вариант:
          http://jsfiddle.net/sparkybg/1puyo08o/

          Нещо повече - ако не държиш на съвместимост със стари браузери, линиите може да ги направиш в SVG картинка, което е векторно и вече практически всички го поддържат. Тогава и да скейлваш на 800%, пак ще излиза добре.
          Последно редактирано от sparkybg; 04-12-15, 23:00.
          Интернет експлорър: Безплатно предоставян от Майкрософт тул за сваляне на браузер по избор.

          Коментар


          • От: Разни въпроси към WEB-аджиите...

            Мдам, явно към пнг/свг отиват нещата. Чудех се просто дали някой не се е изглавоблъскал вече с нещо дето е само css3/jquery базирано. Мерсаж.
            WG 2.7 CRD

            Коментар


            • От: Разни въпроси към WEB-аджиите...

              Пак, линиите отзад трябва ли да съвпадат с редовете или не? Ако да, трябва да сложиш "примерно line-height:30px", и "background-size:auto 30px". Това ти дава еднакъв размер по вертикала на фона с редовете. Евентуално. И пробвай върху всичките масови браузери - FF, IE, Chrome, Opera.

              А дали някой се е главоблъскал точно с това, което искаш ще може да разбереш само ако дадеш пълни подробности какво точно искаш. Според описанието до сега това е, което схванах.

              Ето ти го и със съвпадащи редове на фона с редовете на текста. Поне на Хром и IE11 изглежда ОК:
              http://jsfiddle.net/sparkybg/1puyo08o/3/
              Последно редактирано от sparkybg; 05-12-15, 10:45.
              Интернет експлорър: Безплатно предоставян от Майкрософт тул за сваляне на браузер по избор.

              Коментар


              • От: Разни въпроси към WEB-аджиите...

                Първоначално публикуван от sparkybg Преглед на мнение
                Пак, линиите отзад трябва ли да съвпадат с редовете или не? Ако да, трябва да сложиш "примерно line-height:30px", и "background-size:auto 30px". Това ти дава еднакъв размер по вертикала на фона с редовете. Евентуално. И пробвай върху всичките масови браузери - FF, IE, Chrome, Opera.

                А дали някой се е главоблъскал точно с това, което искаш ще може да разбереш само ако дадеш пълни подробности какво точно искаш. Според описанието до сега това е, което схванах.

                Ето ти го и със съвпадащи редове на фона с редовете на текста. Поне на Хром и IE11 изглежда ОК:
                http://jsfiddle.net/sparkybg/1puyo08o/3/
                Няма редове. Това е ios ресторантски app. Върху лините ще се редят svg/маси-те в помещението.
                WG 2.7 CRD

                Коментар


                • Re: Разни въпроси към WEB-аджиите...

                  Спарки ти е казал. ПНГ за бекграунд с цсс. Нищо сложно.

                  Коментар


                  • От: Re: Разни въпроси към WEB-аджиите...

                    Първоначално публикуван от Daniel Преглед на мнение
                    Спарки ти е казал. ПНГ за бекграунд с цсс. Нищо сложно.
                    Така и стана, само че със svg. Ако на някой му трябва "pan"-а:
                    Код:
                    // .tables layer content pan    var clicking = false;
                        var previousX;
                        var previousY;
                        $('.tables').mousedown(function(e) {
                            e.preventDefault();
                            previousX = e.clientX;
                            previousY = e.clientY;
                            clicking = true;
                        });
                        $(document).mouseup(function() {          
                            clicking = false;
                            $('.tables').css('cursor','');
                        });
                        $('.tables').mousemove(function(e) {
                            if (clicking) {
                                e.preventDefault();
                                var directionX = (previousX - e.clientX) > 0 ? 1 : -1;
                                var directionY = (previousY - e.clientY) > 0 ? 1 : -1;
                                var scroll_t=$('.tables').scrollTop();
                                var scroll_l=$('.tables').scrollLeft();
                                $('.tables').scrollLeft(scroll_l + (previousX - e.clientX));
                                $('.tables').scrollTop(scroll_t + (previousY - e.clientY));
                                $('.tables').css('background-position', ($('.tables').width()-scroll_l)+'px '+($('.tables').height()-scroll_t)+'px');
                                $('.tables').css('cursor','move');
                                previousX = e.clientX;
                                previousY = e.clientY;
                            }
                        });
                        $('.tables').mouseleave(function(e) {
                            clicking = false;
                        });
                    WG 2.7 CRD

                    Коментар


                    • Re: Разни въпроси към WEB-аджиите...

                      Имаш вариант дазабиеш и таблица със цсс бордер и върху нея да редиш. Така ще имаш повече опции за големина на грида, цвят, вид и т.н

                      Коментар


                      • От: Разни въпроси към WEB-аджиите...

                        С една идея по правилно(откъм скорост) е:
                        Код:
                        $('.tables').on({
                            "mousedown": function(e){
                                e.preventDefault();
                                previousX = e.clientX;
                                previousY = e.clientY;
                                clicking = true;
                            },
                            "mouseup": function(e){
                                if (clicking) {
                                    e.preventDefault();
                                    var directionX = (previousX - e.clientX) > 0 ? 1 : -1;
                                    var directionY = (previousY - e.clientY) > 0 ? 1 : -1;
                                    var scroll_t=$('.tables').scrollTop();
                                    var scroll_l=$('.tables').scrollLeft();
                                    $('.tables').scrollLeft(scroll_l + (previousX - e.clientX));
                                    $('.tables').scrollTop(scroll_t + (previousY - e.clientY));
                                    $('.tables').css('background-position', ($('.tables').width()-scroll_l)+'px '+($('.tables').height()-scroll_t)+'px');
                                    $('.tables').css('cursor','move');
                                    previousX = e.clientX;
                                    previousY = e.clientY;
                                }
                            },
                            "mouselwave": function(e){
                                clicking = false;
                            }
                        });
                        По тоя начин jquery търси елементите с клас "tables" само веднъж, вместо 3 пъти. Ако ползваш още обръщения към елементите със $("tables"), ако искаш бързодействие е добре да си запазиш в променлива референс към тях, вместо да гу търсищ всеки път, например "var tables = $(".tables");

                        Ето така кода ще е няколко пъти по-бърз:
                        Код:
                        var tables = $(".tables");
                        tables.on({
                            "mousedown": function(e){
                                e.preventDefault();
                                previousX = e.clientX;
                                previousY = e.clientY;
                                clicking = true;
                            },
                            "mouseup": function(e){
                                if (clicking) {
                                    e.preventDefault();
                                    var directionX = (previousX - e.clientX) > 0 ? 1 : -1;
                                    var directionY = (previousY - e.clientY) > 0 ? 1 : -1;
                                    var scroll_t=tables.scrollTop();
                                    var scroll_l=tables.scrollLeft();
                                    tables.scrollLeft(scroll_l + (previousX - e.clientX))
                                         .scrollTop(scroll_t + (previousY - e.clientY));
                                         .css({
                                             'background-position': (tables.width()-scroll_l)+'px '+(tables.height()-scroll_t)+'px'),
                                             'cursor':'move'
                                         });
                                    previousX = e.clientX;
                                    previousY = e.clientY;
                                }
                            },
                            "mouselwave": function(e){
                                clicking = false;
                            }
                        });
                        Спестяваш си 7 търсения на цялото DOM дърво. Бързодействието може е много по-добро (ако има много елементи в DOM дървото няколко десетки пъти по-бързо), а това за event процедурите е важно.
                        Последно редактирано от sparkybg; 06-12-15, 12:30.
                        Интернет експлорър: Безплатно предоставян от Майкрософт тул за сваляне на браузер по избор.

                        Коментар


                        • От: Разни въпроси към WEB-аджиите...

                          Първоначално публикуван от sparkybg Преглед на мнение
                          С една идея по правилно(откъм скорост) е:
                          Код:
                          $('.tables').on({
                              "mousedown": function(e){
                                  e.preventDefault();
                                  previousX = e.clientX;
                                  previousY = e.clientY;
                                  clicking = true;
                              },
                              "mouseup": function(e){
                                  if (clicking) {
                                      e.preventDefault();
                                      var directionX = (previousX - e.clientX) > 0 ? 1 : -1;
                                      var directionY = (previousY - e.clientY) > 0 ? 1 : -1;
                                      var scroll_t=$('.tables').scrollTop();
                                      var scroll_l=$('.tables').scrollLeft();
                                      $('.tables').scrollLeft(scroll_l + (previousX - e.clientX));
                                      $('.tables').scrollTop(scroll_t + (previousY - e.clientY));
                                      $('.tables').css('background-position', ($('.tables').width()-scroll_l)+'px '+($('.tables').height()-scroll_t)+'px');
                                      $('.tables').css('cursor','move');
                                      previousX = e.clientX;
                                      previousY = e.clientY;
                                  }
                              },
                              "mouselwave": function(e){
                                  clicking = false;
                              }
                          });
                          По тоя начин jquery търси елементите с клас "tables" само веднъж, вместо 3 пъти. Ако ползваш още обръщения към елементите със $("tables"), ако искаш бързодействие е добре да си запазиш в променлива референс към тях, вместо да гу търсищ всеки път, например "var tables = $(".tables");

                          Ето така кода ще е няколко пъти по-бърз:
                          Код:
                          var tables = $(".tables");
                          tables.on({
                              "mousedown": function(e){
                                  e.preventDefault();
                                  previousX = e.clientX;
                                  previousY = e.clientY;
                                  clicking = true;
                              },
                              "mouseup": function(e){
                                  if (clicking) {
                                      e.preventDefault();
                                      var directionX = (previousX - e.clientX) > 0 ? 1 : -1;
                                      var directionY = (previousY - e.clientY) > 0 ? 1 : -1;
                                      var scroll_t=tables.scrollTop();
                                      var scroll_l=tables.scrollLeft();
                                      tables.scrollLeft(scroll_l + (previousX - e.clientX))
                                           .scrollTop(scroll_t + (previousY - e.clientY));
                                           .css({
                                               'background-position': (tables.width()-scroll_l)+'px '+(tables.height()-scroll_t)+'px'),
                                               'cursor':'move'
                                           });
                                      previousX = e.clientX;
                                      previousY = e.clientY;
                                  }
                              },
                              "mouselwave": function(e){
                                  clicking = false;
                              }
                          });
                          Спестяваш си 7 търсения на цялото DOM дърво. Бързодействието може е много по-добро (ако има много елементи в DOM дървото няколко десетки пъти по-бързо), а това за event процедурите е важно.
                          Благодарско. Принципно съм запознат, но .tables е просто паното, което се "pan"-ва, демек е само едно.
                          Иначе твоя пример не чертае в реално време и има малко синтактични грешки.
                          Последно редактирано от imarh; 06-12-15, 14:59.
                          WG 2.7 CRD

                          Коментар


                          • От: Разни въпроси към WEB-аджиите...

                            Първоначално публикуван от imarh Преглед на мнение
                            Иначе твоя пример не чертае в реално време и има малко синтактични грешки.
                            Моя пример би трябвало да върши точно същото като твоя, стига да не съм сбъркал нещо. Синтактични грешки може и да има - просто пренаписах от твоя и преструктурирах. Въпроса беше да хванеш идеята.

                            Че паното е само едно няма значение. Браузера/jquery търси цялото DOM дърво. Нещо повече - проверява всеки път дали елемента/ите са с вече направени Jquery обекти. Ако например въпросното нещо е в "mousemove" ивент, или се натрупат прекалено много ивенти от сорта, пърформанса на цялото приложение започва сериозно да се вижда.

                            Ето го поправено:
                            Код:
                            //.tables layer content pan
                            var tables = $(".tables"),
                                clicking,  //clicking e "undefined", което е същото като false в твоя случай
                                previousX,
                                previousY;
                            
                            
                            tables.on({
                                mousedown: function (e) {
                                    e.preventDefault();
                                    previousX = e.clientX;
                                    previousY = e.clientY;
                                    clicking = true;
                                },
                                mousemove: function (e) {
                                    if (clicking) {
                                        e.preventDefault();
                                        var directionX = (previousX - e.clientX) > 0 ? 1 : -1,
                                            directionY = (previousY - e.clientY) > 0 ? 1 : -1,
                                            scroll_t = tables.scrollTop(),
                                            scroll_l = tables.scrollLeft();
                                        tables.scrollLeft(scroll_l + (previousX - e.clientX))
                                            .scrollTop(scroll_t + (previousY - e.clientY))
                                            .css({
                                                'background-position': (tables.width() - scroll_l) + 'px ' + (tables.height() - scroll_t) + 'px',
                                                'cursor': 'move'
                                            });
                                        previousX = e.clientX;
                                        previousY = e.clientY;
                                    }
                                },
                                mouseleave: function (e) {
                                    clicking = false;
                                }
                            });
                            
                            
                            $(document).mouseup(function () {
                                clicking = !0;
                                tables.css('cursor', '');
                            });
                            Интернет експлорър: Безплатно предоставян от Майкрософт тул за сваляне на браузер по избор.

                            Коментар


                            • От: Разни въпроси към WEB-аджиите...

                              Мерсаж. Аз отдавна го сглобих. Оставих скрипта понеже така и така повдигнах въпроса, та да има и решение. То е ясно, че всеки ще го пипне малко или много. Но тези 5 селекта и с console.time не можеш да ги хванеш иначе.
                              WG 2.7 CRD

                              Коментар


                              • От: Разни въпроси към WEB-аджиите...

                                Но тези 5 селекта и с console.time не можеш да ги хванеш иначе.
                                Тури ги в един цикъл от 10000 и ще ги хванеш екстра. Въпроса е че се получават натрупвания - това не е единствения ивент в приложението ти и ако не пестиш от селектите (и каквото друго може да се спести в ивент хендлърите) може да се случи да се чудиш що твойто се мота а друго подобно върви много по-гладко.

                                Понеже съм правил известно количество средно сложни, но за сметка на това доста изчекнато направени като елементи и изчертаване уиджети и нещо като фреймуорк с разни там функции (remote datasource например, с филтрирания, сортирания, бля-бля) съм загубил доста време в тестове, та съм професионално изкривен по въпроса.
                                Интернет експлорър: Безплатно предоставян от Майкрософт тул за сваляне на браузер по избор.

                                Коментар

                                Активност за темата

                                Свий

                                В момента има 1 потребители онлайн. 0 потребители и 1 гости.

                                Най-много потребители онлайн 8,787 в 16:37 на 21-06-23.

                                Зареждам...
                                X