Обява

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

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

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

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

    Идеята е да не го записва сульо и пульо, както и да не може да става автоматизирано. При това съм виждал сайтове, в които е направено. Явно минава през скрипт, но просто не знам механизма.
    Долните твари, измислили перверзията Erlang, имат "много здраве" от мен. Болезнено!

    Коментар


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

      За сульо и пульо си има разни тъпи жава скриптчета, които забраняват десен бутон. Има и други, при които просто липсва "save image as" или каквото е там, но работи само за някои броузери. Едно търсене за "web disable image save" ще ти даде няколко метода, които можеш да ползваш. Но за мен това си остава загуба на време и допълнително трупане на глупости из страницата, което е напълно ненужно и в даден момент може да се наложи ревизиране на целия код заради тъп жава скрипт, забраняващ нещо си...

      Коментар


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

        Че какво има да ревизирам толкоз? Правя си widget по случая, и толкоз. Засега изображения имам на 2-3 места всичко на всичко. Стана модерно в досието на даден служител да му се мъдри и снимката и съответно мрънкат.

        А и ми се струва че има някакъв по-хитър начин това да се случи, а не да дизейлбълвам менюта на всеки броузър поотделно.

        ПП: Например - слагам върху картинката празен полупрозрачен span или div (примерно с прозрачност 99%), прихващам му мишите ивенти (макар че не знам дали има нужда въобще), и приключвам въпроса. Така меню изобщо няма да се покаже, на всеки броузер. Пак казвам - не искам да се задълбавам да го правя кой-знае колко сложно, при положение че ако някой много иска, така или иначе ще гепи изображението, пък било то и с print screen. Трябва ми простичко и надеждно решение, което ще ми позволи да спра (или поне ще затрудня) всеки втори тъпак да сваля снимки на колежките си с 2 клика, докато работещия на въпросния компютър е излязал да си купи кафе.
        Последно редактирано от sparkybg; 21-09-12, 19:07.
        Долните твари, измислили перверзията Erlang, имат "много здраве" от мен. Болезнено!

        Коментар


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

          Отговорът е "не". Защото всеки трети тъпак ще попита някой по-разбиращ и следващия път ще запише каквото му трябва. Ако не вярваш - пробвай се, щом ти прави кеф да се занимаваш с глупости

          Мой познат беше написал и продаваше продукт преди 10-на години, който кодираше уеб страниците и после динамично с JS се декодираха, но с излизането на девелъпърските екстеншъни за firefox му се разказа играта - там всичко се виждаше декодирано. А сега положението е толкова улеснено, че просто е излишно напъване и вкарване на излишни неща в и без това тежките страници.

          Коментар


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

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

            Коментар


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

              Пак опираш до флеш ако искаш да не се сваля flash + xml + asp или там каквото става.
              Последно редактирано от Daniel; 24-09-12, 10:06.

              Коментар


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

                Някакви съображения относно съхраняването на речника за интерфейса в JSON формат?

                Идеята е, като ми трябва на сървъра го десериализирам в обект, а като ми трябва на страницата го зареждам като прост js файл, пак в обект.

                Всичките езици са на куп, лесно се превежда, лесно се добавя, и нищо не се прекомпилира - редактораш файла, и толкоз. На всичкото отгоре като е в js файл, при редактиране IDE-то на VS2010 ми проверява "правописа".
                В същото време е доста по-четлив от XML.

                Изобщо, как решавате подобни терзания? Ресорс файл във VS2010 категорично не ме устройва.
                Долните твари, измислили перверзията Erlang, имат "много здраве" от мен. Болезнено!

                Коментар


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

                  База данни с фрази и интерфейс за редактиране и добавяне или външени файл с дефинирани фрази.

                  Коментар


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

                    Дани, аз до колкото разбирам въпросът е какъв да е външния файл, защото Спарки вече го е избрал като вариант да се прави по този начин. Ние примерно ползваме добрия стар дядо INI файлов формат, в който дори лаик в компютрите може да прави превода с обикновен текстов редактор, без да унищожи структурата на файла. Отделно секциите в INI-тата са страшно удобни, за да се разбере кое за какво се отнася, а не да се измислят дълги описателни имена на променливите. Пробвали сме и с XML файлове, но практиката ни показа, че е излишна загуба на ресурси и време, за да се прави по този начин.

                    Та според мен JSON формата ще върши добра работа и моето единствено съображение е пак по-специфичния формат, при който трябва да се спазват разни правила, за да не се изтрие някоя скоба или кавичка. Освен ако няма специален редактор за целта

                    Коментар


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

                      Оф поне все бързам имах в предвид файл които да е сървер сайд - php,asp etc. INI също е подходящо. До сега не съм виждал или правил json формат, не смятам че е подходящ защото не е сървер сайд и винаги се зарежда на компа на потребителя. Практиката е - ini, php, db.

                      Коментар


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

                        Всъщност вече сме писали и двамата за преводите, при това в тази тема
                        http://www.offroad-bulgaria.com/show...27#post1905327

                        Коментар


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

                          Файла Е server-side. Зарежда се в клас с един ред.
                          Файла представлява нещо от сорта:
                          Код:
                          ot.lang = {
                          
                          
                          Languages: ['BG', 'EN', 'DE'],
                          
                          
                          Sections: [
                          
                          
                          { Section: "General", Values: [
                          
                          
                          { Name: "About1", Values: ['Относно', 'About', 'über'] },
                          { Name: "About2", Values: ['Относно', 'About', 'über'] },
                          { Name: "About3", Values: ['a', 'b', 'b'] },
                          { Name: "No", Values['Не','No','Nein'] },
                          { Name: "Yes", Values['Да','Yes','Ja'] }
                          
                          
                          ]
                          },
                          
                          
                          { Section: "Login", Values: [
                          
                          
                          { Name: "Title", Values: ['Вход в системата', 'Log in', 'Einloggen'] },
                          { Name: "Enter", Values: ['Влез', 'Enter', 'Einloggen'] }
                          
                          
                          ]
                          }
                          
                          
                          ]
                          }
                          Предимството - като ми трябва на сървъра, зареждам го в обект и си правя хелпер, който набутва текстовете по страниците, в зависимост от текущия избран език. Като ми трябва на клиентската машина, добавям един ред <script src=.... върху страницата, и вече го имам заредено и там в неймспеис "ot", променлива "Lang". Всички езици са в един файл, което обаче няма отношение към скоростта на търсене, но пък се превежда много по-лесно, защото виждаш фразите на няколко езика едновременно и е по-лесно да се избегнат недоразумения, като например:

                          "Влез" на български е например "Enter" на английски, което на немски има едни 30 възможни превода (виж в http://translate.google.com/#en/de/enter), коректния е например само един - "einschreiben", да не говорим че не е сигурно дали по-доброто за случая не е "einloggen".

                          Редактора - всеки редактор за JavaScript ще ти покаже грешките. В случая се ползва редактора в IDE-то на VS2010.

                          XML или база данни категорично не искам. VS2010 няма вградени функции за четене на INI файлове, значи или трябва да си пиша аз, или да ползвам външна библиотека, а отделно ако искам да ползвам същия речник върху клиентската част, там също трябва да пиша или използвам библиотека.
                          JSON-а си е "native" за javascript, a .NET си има вградени функции за четенето му (както казах - чете се в клас с един програмен ред, ползвайки само вградени в .NET неща).

                          Да, естествено е по-сложен като синтаксис от INI-то, но пък е по-прост и от XML, и от гледна точка на четене.

                          Долните твари, измислили перверзията Erlang, имат "много здраве" от мен. Болезнено!

                          Коментар


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

                            За mvc.net стандартния начин за локализация е с ресурсни файлове.. Странно, че не намирам с просто търсене нещо по-различно от това.
                            JSON формата дефакто е стандарт за пазене и предаване на данни за Web, така че си се насочил в правилната посока. Ако си решил да го правиш така - не виждам някакъв проблем. Само няколко предложения:

                            Не използваш JSON-а като dictionary, а като array. Ето един пример:

                            Код:
                            Sections: [{ "General": 
                                   [1026: {"About1": "Относно", "No": 'Не', "Yes": "Да"},
                                   [1033: {"About1": "About", "No": 'Не', "Yes": "Да"},
                                   [1031: {"About1": "über", "No": 'Nein', "Yes": "Ja"},
                            Предполагам за LCID е ясно. Така ще можеш по-лесно да си намираш текстовете, например:

                            Код:
                            Sections['General'][lcid]['About1']
                            Иначе ще трябва да въртиш и да търсиш по ['Values'] и после по ['Name']..
                            Като цяло стратегията е ОК за мен, но все си мисля, че трябва да има нещо готово направено някъде в нета. Все някой да се е сетил да го направи преди теб ... Но пък е и вярно, че OpenSource мисленето не е силна страна на .НЕТ програмистите, все още..

                            П.С. Относно ресурсните файлове в .НЕТ - там идеята е, че имаш един XML, с ясно дефинирана структура, който се подава на преводач, и понеже той няма много познание по JSON/XML, ползва някакъв редактор, който вади ХМЛ-а като документ, той набива текстовете, и ти връща XML-а, ти си го вкарваш в проекта, компилираш и си готов. Като цяло процеса е измислен добре, но има и други начини. Зависи ти как ще си ги дефинираш/редактираш текстовете.


                            EDIT: Всъщност имало: https://github.com/danielcrenna/i18n. Горещо ти препоръчвам да прегледаш този проект. Това е наистина стандарт в локализирането на сайтове, и се ползва в много web frameworks. На мен това ми беше мисълта в началото, но не го намерих от първия път в Гугъл. Е значи някой все пак се е потрудил да го направил..
                            Последно редактирано от Tihomir(imageo); 04-10-12, 10:44.
                            Вярата в конспирации е опростяване, което ни помага да обясняваме всичко.

                            Коментар


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

                              ХиХи, точно това правя в момента:
                              Код:
                              ot.lang = {
                              
                              
                                  Languages: ['BG', 'EN', 'DE'],
                              
                              
                                  Sections: {
                              
                              
                                      General: {
                              
                              
                                          About1: ['Относно', 'About', 'über'],
                                          About2: ['Относно', 'About', 'über'],
                                          About3: ['a', 'b', 'b'],
                                          No: ['Не', 'No', 'Nein'],
                                          Yes: ['Да', 'Yes', 'Ja']
                              
                              
                                      },
                              
                              
                                      Login: {
                              
                              
                                          Title: ['Вход в системата', 'Log in', 'Einloggen'],
                                          Enter: ['Влез', 'Enter', 'Einloggen']
                              
                              
                                      }
                              
                              
                                  }
                              
                              
                              }
                              И обръщението в javascript ще е:
                              Код:
                              ot.Lang.Sections.General.About1[0];
                              A в C#:
                              Код:
                              _lang.Sections["General"]["About1"][0];
                              Проблема е че не мога да чета квото си искам от JSON-а. Вградените функции в .NET-а искат предварително дефиниран клас. JSON.NET може да чете и в анонимен клас, ама засега не виждам смисъл да го ползвам, макар че е доста популярно.
                              Долните твари, измислили перверзията Erlang, имат "много здраве" от мен. Болезнено!

                              Коментар


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

                                Лека дилема. Правя Widget таблица под jQuery ui. Представлява ето това:
                                Натиснете снимката за да я уголемите

Име:table.png
Прегледи:1
Размер:12.1 КБ
ID:5427837

                                Целта на мероприятието:
                                1. скролбара е custom, пак правен от мен, за да си пасва с темата, а не да седи като на свинче звънче.
                                2. таблицата е с "virtual scroll". Казано иначе, таблицата може да има 1000000 реда, но физически в HTML-то има само толкова елементи, колкото се виждат. Това доста ускорява нещата от гледна точна на браузъра, защото например ако таблицата е в диалог, не му се налага да мести 1000000 елемента, ами мести и пречертава само видимото. Самата таблица не е таблица, понеже всеки броузър има свое виждане и свободни съчинения как трябва да чертае таблица, ами е един div за таблицата, в който има по един div за всеки видим ред, в който има по един div за всека клетка от таблицата. Има 2 такива таблици, като в даден момент е показана само едната. Скрола се имитира като се сменя текста във всели div за клетките, заедно със scrolltop позицията на контейнера, в който са двете таблици. В крайна сметка почти по нищо не се разбира че действа така, освен леко забавяне при скролване на по-бавни машини с FF, ами си се държи като обикновена таблица.

                                Всички елементи на таблицата са jQuery обекти, и са съхранени като такива в кода на самия widget. По тоя начин си работя върху jQuery обектите, без да закачам DOM представянето им, освен когато не се налага да се пречертае нещо. Стигнах до момента, в който трябва да обработвам мишите ивенти когато се кликне върху таблицата, съответно дилемата е дали да наслагам ивент хандлери на всяка клетка от таблицата, или да сложа ивент хандлер на контейнера, в който са набутани и двете таблици и да обработвам там всичките ивенти от таблицата.

                                Ако сложа ивент хандлери на всяка клетка, те се инициализират горе-долу така(this в случая е widget обекта, that e локална променлива, сочеща към него):
                                Код:
                                this.tables[a].rows[b].cells[c]=ccc=createCell(); //това създава клетката, като инициализира в нея две променливи row и col, съответстващи на реда и колоната, на които тая клетка към момента отговаря. Променят се динамично при скролване.
                                
                                ccc.on("click", function(event){
                                    return that._cellClick.call(that, event, ccc.row, ccc,col);
                                });
                                Както се вижда, хандлера е крайно прост, но пък е закачен кум всяка клетка.

                                Вместо това, мобе да се направи хандлер само за контейнера (this.viewPort), който да изчислява върху коя клетка е кликнато. Представлява нещо такова:
                                Код:
                                this.viewPort.on("click", function(event){
                                    var cx, cc, ccc, off, row, col,
                                         g = this.geometry; //тук са размерите, позициите и т.н. на всичко из widget-а. Ползва се като кеш, когато трябва да се промени нещо, и най-накрая върху DOM елементите се прилага само промененото, ако има такова.
                                
                                
                                    off = this.viewPort.offset(); //връща координатите на позицията на контейнера в страницата
                                    off.left = ((event.pageX - off.left) * 100) / this.tables[0].rows[0].innerWidth(); //преизчислява X координатата към процент, защото координатите на клетикте във всеки ред са зададени като проценти, с цел автоматично ресайзване.
                                    row = Math.floor(((event.pageY - off.top - g.viewPort.borderWidth) / g.row.height.pixels) + this.rowPos); //изчислява реда
                                    col = -1;
                                    cx = 0;
                                    for (cc = 0; cc < g.cols.length; cc++) { //обикаля колоните за да прецени коя е колоната.
                                        cx += g.cols[cc].width.pixels;
                                        if (((cx * 100) / g.cols.width) > off.left) {
                                            col = cc;
                                            break;
                                            }
                                        }
                                    }
                                    return that._cellClick.call(that ,event, row, col);
                                });
                                Та, дилемата е - ако сложа хандлери на всяка клетка, хандлерите стават примерно 200, но простички и бързи. С централен хандлер, той е само един, но пък по-бавен (ако скорост около милисекунда може да се каже че е бавна). Пробвах го и по двата начина, и работи, включително и през телефона ми, без издънка.

                                Всъщност, jQuery така или иначе си слага хандлери на всеки елемент за всеки ивент, за да имитира съвместимост между разлините броузери, та се питам има ли полза от файдата да правя "сложен централен" хандлер?

                                Какво мислите по въпроса? На моменти в страницата ще има по 5-6 таблици с размер горе-долу като на картинката, и пърформанса в полза на мойта, сравнен например с jqGrid, е потресающ, особено на бавни машини с бавни броузери. Затова е и цялата мъка.
                                Последно редактирано от sparkybg; 22-11-12, 18:32.
                                Долните твари, измислили перверзията Erlang, имат "много здраве" от мен. Болезнено!

                                Коментар

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

                                Свий

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

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

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