Страница 14 от 14 ПървиПърви ... 4 10 11 12 13 14
Резултати 261 до 273 от 273

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

  1. #261
    Аватара на sparkybg
    sparkybg е офлайн
    Спартак Тимчев
    Старши участник | ОС || СзО || +ПЛ || ТП || ДВиП |* МСС *
    | Модератор |
    Регистрация
    Aug 2007
    Място
    София
    Публикации
    32,704
    Точки (при гласуване)
    64

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

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

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

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

  2. #262
    Регистрация
    Oct 2009
    Място
    Sofia
    Публикации
    1,286
    Точки (при гласуване)
    12

    По подразбиране От: Разни въпроси към 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

  3. #263
    Регистрация
    Oct 2006
    Място
    Bulgaria Sofia
    Публикации
    7,399
    Блог Публикации
    9
    Точки (при гласуване)
    60

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

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

  4. #264
    Регистрация
    Oct 2009
    Място
    Sofia
    Публикации
    1,286
    Точки (при гласуване)
    12

    По подразбиране От: 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

  5. #265
    Регистрация
    Oct 2006
    Място
    Bulgaria Sofia
    Публикации
    7,399
    Блог Публикации
    9
    Точки (при гласуване)
    60

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

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

  6. #266
    Аватара на sparkybg
    sparkybg е офлайн
    Спартак Тимчев
    Старши участник | ОС || СзО || +ПЛ || ТП || ДВиП |* МСС *
    | Модератор |
    Регистрация
    Aug 2007
    Място
    София
    Публикации
    32,704
    Точки (при гласуване)
    64

    По подразбиране От: Разни въпроси към 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 в 13:30
    Интернет експлорър: Безплатно предоставян от Майкрософт тул за сваляне на браузер по избор.

  7. #267
    Регистрация
    Oct 2009
    Място
    Sofia
    Публикации
    1,286
    Точки (при гласуване)
    12

    По подразбиране От: Разни въпроси към 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 в 15:59
    WG 2.7 CRD

  8. #268
    Аватара на sparkybg
    sparkybg е офлайн
    Спартак Тимчев
    Старши участник | ОС || СзО || +ПЛ || ТП || ДВиП |* МСС *
    | Модератор |
    Регистрация
    Aug 2007
    Място
    София
    Публикации
    32,704
    Точки (при гласуване)
    64

    По подразбиране От: Разни въпроси към 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', '');
    });
    Интернет експлорър: Безплатно предоставян от Майкрософт тул за сваляне на браузер по избор.

  9. #269
    Регистрация
    Oct 2009
    Място
    Sofia
    Публикации
    1,286
    Точки (при гласуване)
    12

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

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

  10. #270
    Аватара на sparkybg
    sparkybg е офлайн
    Спартак Тимчев
    Старши участник | ОС || СзО || +ПЛ || ТП || ДВиП |* МСС *
    | Модератор |
    Регистрация
    Aug 2007
    Място
    София
    Публикации
    32,704
    Точки (при гласуване)
    64

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

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

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

  11. #271
    Аватара на sparkybg
    sparkybg е офлайн
    Спартак Тимчев
    Старши участник | ОС || СзО || +ПЛ || ТП || ДВиП |* МСС *
    | Модератор |
    Регистрация
    Aug 2007
    Място
    София
    Публикации
    32,704
    Точки (при гласуване)
    64

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

    Пореден гламав казус: трябва ми линк (а елемент), който все едно сочи към статичен файл, но като се цъкне да ми извика контролер и екшън на webapi-то. Към момента съм го докарал да работи, но само когато файла няма разширение. Ако има, се опитва да сваля файл от директориите на проекта, вместо да викне екшъна на контролера. Кое трябва да боря, конфигурацията на web апликейшъна (MVC5), конфигурацията на IIS-а, или да правя къстъм контролер и екшън селектор? Чини ми се че директно IIS-а прави тая простотия, ама не се сещам как да съм на 100% сигурен.

    Към момента:
    - <а href="http://www.bla-bla.com/api/mod/file/аааcontroller/bbbaction/0/7/filename"> вика контролер "aaacontroller" и екшън "bbbaction" с параметри 0 и 7, и при "save target as" предлага име "filename"
    - <а href="http://www.bla-bla.com/api/mod/file/аааcontroller/bbbaction/0/7/filename.ext"> вместо да викне контролера и екшъна, се опитва директно да свали файл "filename.ext", който естествено не намира. И ми се струва че самия IIS директно прави опитите без да вика апликейшъна въобще

    Цялото упражнение е заради нефелниците от майкрософт, които поддържат атрибут "download" едва в 12-та версия на говното си, а аз трябва да поддържам от 10 нагоре.

    Та, някой ако знае къде да бръкна в конфигурацията на WEB сървъра (в случая IIS) и да му кажа да мапва "http://www.bla-bla.com/api/mod/file" към апликейшъна, а не да се опитва да го търси директно, ще съм му супер благодарен. Стига да е възможно де.

    Всичкия зор е да докарам еднакво държане на всички браузъри, тоест да си кликнат с десен бутон->save target as/save link as и то направо да им предложи правилното име на файла. С blob-ове проблема е същия - свалям го в base64, набутвам го в blob, правя виртуален линк към blob-а, обаче експлорера, неподдържайки "download" атрибута ми предлага като име на файл директно виртуалния линк, който е примерно "kjhas8971ljqw98712". Със safari проблема е същия - то пък горкото изобщо не поддържа download атрибута в никоя версия, независимо десктоп или мобилна.
    Последно редактиран от sparkybg ; 24-06-16 в 23:23
    Интернет експлорър: Безплатно предоставян от Майкрософт тул за сваляне на браузер по избор.

  12. #272
    Аватара на sparkybg
    sparkybg е офлайн
    Спартак Тимчев
    Старши участник | ОС || СзО || +ПЛ || ТП || ДВиП |* МСС *
    | Модератор |
    Регистрация
    Aug 2007
    Място
    София
    Публикации
    32,704
    Точки (при гласуване)
    64

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

    Казуса решен. Добавих handler в web.config с път "*/file/api/*" и сега вика хендлера на апликейшъна за всичко дето съдържа "/file/api/". Естествено, добавих го преди "StaticFile" хандлера.

    Аз доволен!
    Интернет експлорър: Безплатно предоставян от Майкрософт тул за сваляне на браузер по избор.

  13. #273
    Регистрация
    Oct 2009
    Място
    Sofia
    Публикации
    1,286
    Точки (при гласуване)
    12

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

    Някой с опит в MSSQL Store Forward ? Може да се каже, че почти нямам идея....

    В момнта контролера изсипва суровия json(nvarchar(max)) от пост-а и даден jobType(int) чрез сторед процеура в таблица StoreForward да кажем. И от там до колкото ми е известно чрез друга процедура базирана на jobType, вече не в реално време mssql-a си хваща суровия json и си го парсва, смята, обработва и записа по таблици, полета и т.н.

    - Не ми е ясно, кое е това нещо което ще стартира въпросната втора процедура не в реално време?
    - Процедура ли е изобщо или нещо друго?
    - Как се настройва от къде, кога и в каква последователност да ги почне заявките?
    - Някакъв пример?
    WG 2.7 CRD

Страница 14 от 14 ПървиПърви ... 4 10 11 12 13 14

Сходни теми

  1. Подземен добив - BLOCK CAVING
    От vlageo във форум Сондажна техника и сондажни методи
    Отговори: 14
    Последно мнение: 04-01-12, 13:40
  2. Ken Block
    От Glow във форум Спам, чат дискусии, всичко което не е за останалите форуми!
    Отговори: 11
    Последно мнение: 19-12-11, 22:16
  3. V8 HEMI BIG BLOCK 440 MAGNUM
    От BENZBOSS във форум Тунинг на двигатели
    Отговори: 6
    Последно мнение: 28-04-11, 20:09
  4. The web-site is down
    От Obersturmbahnfuehrer във форум Връзки (links) към външни сайтове
    Отговори: 1
    Последно мнение: 13-08-08, 11:00

Правила за публикация

  • Вие не можете да публикувате нови теми
  • Вие не мжоете да отговаряте в теми
  • Вие не можете да добавяте прикачени файлове
  • Вие не можете да редактирате собствените публикации
  •