WebView: Text-based Browser

...
  • WebView 1.0 Beta 4

    1. Просмотр исходника страницы, спасибо ppk-center за идею. Требует небольшой доработки и оптимизации, но уже сейчас пригодно к использованию. Вариант с str_replace() оказался очень медленный, используется более оптимизированный вариант.
    2. Загрузка цветов из скина (спасибо dunkaist и 0CodErr за помощь)
    3. Увеличена высота строки - так легче воспринимается текст.
    4. Реализовано получение абсолютного адреса картинки.

    Исправления:
    а. Когда нажимаешь клавиши Home/End в строке адреса, то эти клавиши больше не влияют на прокрутку страницы.
    б. Исправлены артефакты в строке адреса, если мы нажали перейти на какую-то страницу, и до этого у нас был выделенный текст в ней.
    в. Раньше затирались нижнение 10 пикселей изображения, очень древний баг, исправлено
    Attachments
    Screenshot_1.png
    Screenshot_1.png (41.49 KiB)
    Viewed 4144 times
    Last edited by Leency on Sun Mar 30, 2014 3:04 pm, edited 1 time in total.
    Из хаоса в космос
  • Mario_r4 wrote:Qemu correct configuration:
    -net nic,model=rtl8139 -net user
    I used rtl8139, but this adapter wasn't stable before, so hidnplayr asked me to switch to i82557b.

    Now I tryed rtl8139 one more in QEMU. It works faster than i82557b and bug isn't exists. So I will contiune using it.
    Из хаоса в космос
  • Без вкладок он даже красивее выглядит, может лучше их вниз кинуть? Непривычно конечно, но со временем...
  • Алан Купер "Психбольница в руках пациентов"
    Мой веб-броузер проводит большую часть времени в бездействии, пока я просматриваю различные сайты. Он мог бы легко предвидеть мои потребности и готовиться к ним, а не терять зря время. Почему он не может воспользоваться временем простоя для загрузки страниц по видимым ссылкам? Велики шансы, что вскоре я попрошу браузер перейти на одну из этих страниц. Невостребованный запрос легко оборвать, однако на ожидание выполнения нового запроса всегда тратится время. Если бы программа предвидела мои желания, готовилась к моим запросам, вместо того, чтобы молча ожидать моей команды, она стала бы гораздо более отзывчивой без необходимости в более быстром Интернете.
    Leency
    Как тебе такая идея?
  • Albom
    Я думаю по умолчанию такая вещь должна быть отключена, так как есть люди с лимитированными тарифными планам по доступу к сети, а на GPRS так вообще тарификация чуть ли не за каждый килобайт. Они могут не знать о том что есть такая предзагрузка и будут сильно потрясены, удивлены и крайне обескуражены, но вслух произнесут и на форум напишут совсем другое. :-)
    Всем чмоки в этом проекте! Засуньте эти 11 лет себе в жопу!
  • Есть такая штука, как

    Code: Select all

    <link rel='next' href='next_page' />
    
    Когда текущая страница загрузится, то потом загружается эта.

    Сейчас я подумываю сделать кеширование страниц. Это обязательное условие для вкладок.
    Из хаоса в космос
  • Leency wrote: 1. Просмотр исходника страницы, спасибо ppk-center за идею. Требует небольшой доработки и оптимизации, но уже сейчас пригодно к использованию. Вариант с str_replace() оказался очень медленный, используется более оптимизированный вариант.
    Ну и как реализован более оптимизированный вариант.
    The motto of the wise is: be prepared for surprised http://vlampochke.esy.es/
  • ppk-center

    Давай рассмотрим твой вариант.

    Code: Select all

    str = str_replace("<", "<p><font color=red><", str);
    str = str_replace(">", "></font></p>", str);
    
    Какие минуса:
    1. во-первых он медленный, т.к. один и тот же буфер должен прогоняться каждый раз с начала.
    str_replace("<", "<p><font color=red><", str); - с начала и до конца, str_replace(">", "></font></p>", str); - тоже с начала и до конца.
    Это ОЧЕНЬ долго.
    2. во-вторых в лучшем случае получится каша:
    str = str_replace("<", "<p><font color=red><", str);
    мы заменяет все "<" на "<p><font color=red><" - ОК.
    А потом все ">" на "></font></p>", т.е. все
    > в предыдущей строке "<p><font color=red><" тоже будут заменены!

    И это всё в лучшем случае. В худшем, мы получим рекурсию, т.к. в строке
    str_replace("<", "<p><font color=red><", str);
    мы заменяем < несколькими <.

    Каков мой вариант.
    http://websvn.kolibrios.org/filedetails ... 9&peg=4719
    Он похож на твой, только тут мы перебираем каждый символ страницы и формируем новый буфер.
    т.е.

    Псевдокод.
    for (i=cur_page_start; i<cur_page_length; i++)
    {
    if (*i=='<') strcat(new_buf_source, "<p><font color=red><" );
    else if (*i=='>') strcat(new_buf_source, "></font></p>" );
    else chrcat(new_buf_source, *i );
    }
    Last edited by Leency on Mon Mar 31, 2014 5:20 pm, edited 1 time in total.
    Из хаоса в космос
  • Кстати, в исходнике баг...
    Из хаоса в космос
  • Как будто "0,5 секунды" — это быстро :lol:
    У тебя там, кстати, что strcat, что chrcat сначала определяют длину строки в буфере, хотя ты сам двигаешь указатель, например: new_buf++, и к тому же тебе известна длина добавляемых данных. То есть, достаточно было memcpy(dst, src, count). А здесь chrcat(new_buf, ww) можно даже и без memcpy обойтись.
  • > "0,5 секунды"
    То, что было 24 секунды я засекал. 0.5 сказано примерно для сравнения.

    > У тебя там, кстати, что strcat, что chrcat сначала определяют длину строки в буфере, хотя ты сам двигаешь указатель
    Точно, можно этот момент улучшить. Спасибо.
    Из хаоса в космос
  • Albom quotes;
    "Мой веб-броузер проводит большую часть времени в бездействии, пока я просматриваю различные сайты.
    Он мог бы легко предвидеть мои потребности и готовиться к ним, а не терять зря время. Почему он не может
    воспользоваться временем простоя для загрузки страниц по видимым ссылкам?
    ... чтобы молча ожидать моей
    команды, она стала бы гораздо более отзывчивой без необходимости в более быстром Интернете.
    "
    Mario_R4 replies;
    "Я думаю по умолчанию такая вещь должна быть отключена, так как есть люди с лимитированными тарифными
    планам по доступу к сети
    " ...
    Mario_R4 has his finger on the problem... for instance to look at a website e.g.; http://www.blurbusters.com/faq/120hz-mo ... lightboost
    you realize that to start downloading even say 1st five links would slow down too much web access for the webpage you
    are currently viewing (and which itself perhaps has pictures which are still not yet finished downloading for displaying).
    Examine suggestion more critically.. OK, you are at some webpage, you see a link you know you will want to view next
    - if you were using Windows, you would left mouse button click the link, as it began to display you would move cursor up
    to top right of new webpage window and minimize new window, so you can then keep viewing 1st webpage (while new link
    webpage continues downloading minimized to taskbar).
    This process takes a bit more than 1 second of wasted mouse movement, each occaision you do this - how to improve on this?
    My suggestion for this scenario is to instead have the ability to double click the right mouse button, so that 'double click of right
    mouse button on link' = 'download link (already) minimized to the taskbar, while maintaining current webpage for viewing'.

    Of course, after 1st click of right mouse button, appears context menu - but on 2nd click, context menu is banished (unused)
    and link fetching as above takes place. {EDIT: banished(unused) = mouse driver recoded specifically for this behaviour}
    The advantage is that you do not waste mouse movement, but a better advantage is much less disturbance to your viewing
    (and reading) of current webpage - as is said in the West, you do not 'lose your train of thought'.
    For Albom, this suggestion does not satisfy his desire, but in imperfect world, suggestion is surely nearest to what he could
    reasonably hope for to speed up and make more efficient his browsing in (a future) KolibriOS browser.
    Last edited by buyerninety on Sun Feb 01, 2015 3:17 pm, edited 2 times in total.
  • WebView 1.0 Beta 5.5

    1. Strong optimizations in ViewSource functions.
    2. Fix header in ViewSource mode.
    3. Fix page bufsize in ViewSource mode.
    4. Decrease tab size to 4 spaces. Optimize tab code.
    5. Optimize window redraw.
    6. Use single quote instead double quote in ViewSource mode.
    Attachments
    Screenshot_1.png
    Screenshot_1.png (26.03 KiB)
    Viewed 4026 times
    Из хаоса в космос
  • Вылетела при попытке свернуть в заголовок.
    Board:
    Spoiler:Image
  • Who is online

    Users browsing this forum: No registered users and 6 guests