LINUX.ORG.RU

Быстрота камней

 ,


0

3

Гляжу на код вконтакта и недоумеваю, как такой трындец/каша/оверддос может так быстро грузится не считая уж обращений к мускулу итп... В чем фокус? часть трындеца (подобных строк в любой станице тысячи):

</div><div class="audio" id="audio2000469583_359191718_296880460_25" onmouseover="addClass(this, 'over');" onmouseout="removeClass(this, 'over');">
  <a name="2000469583_359191718_296880460_25"></a>
  <div class="area clear_fix" onclick="if (cur.cancelClick){ cur.cancelClick = false; return;} playAudioNew('2000469583_359191718_296880460_25')">
    <table cellspacing="0" cellpadding="0" width="100%">
      <tr>
        <td>
          <div class="play_btn_wrap"><div class="play_new" id="play2000469583_359191718_296880460_25"></div></div>
          <input type="hidden" id="audio_info2000469583_359191718_296880460_25" value="http://cs1-44v4.vk-cdn.net/p20/5e20b69f0f0b68.mp3?extra=XQfW9l3HCkkW-azypkRXVC3u1qtiB89GJxoNnL705CxyjvG6ujzSUtu-w6LfaWAedMSt5pKeAFoxwHhtN1TG-ncqGED02TVg,238" />
          
        </td>
        <td class="info">
          <div class="title_wrap fl_l" onmouseover="setTitle(this)"><b onclick="event.cancelBubble = true;"><a href="/search?c[section]=audio&c[q]=Poldoore&c[performer]=1" onclick="return nav.go(this, event);">Poldoore</a></b> &ndash; <span class="title" id="title2000469583_359191718_296880460_25">But I Do </span><span class="user" onclick="event.cancelBubble = true;"></span></div>
          <div class="actions" onclick="event.cancelBubble = true;">
            <div class="audio_add_wrap fl_r" onmouseover="showTooltip(this, {text: 'Добавить в Мои Аудиозаписи', showdt: 0, black: 1, shift: [9, 4, 0]});" onclick="addAudio({el: this, from_wall: 1, aid: 359191718, oid: 2000469583, hash: 'b05e3a12a4e7901357'}); return cancelEvent(event);">
              <div class="audio_add"></div>
            </div>
            
          </div>
          <div class="duration fl_r" onmousedown="if (window.audioPlayer) audioPlayer.switchTimeFormat('2000469583_359191718_296880460_25', event);" onclick="cancelEvent(event)">3:58</div>
        </td>
      </tr>
    </table>
    <div id="player2000469583_359191718_296880460_25" class="player" ondragstart="return false;" onselectstart="return false;" onclick="event.cancelBubble = true;">
      <table cellspacing="0" cellpadding="0" border="0" width="100%">
        <tbody><tr>
          <td style="width: 100%;">
            <div id="audio_pr2000469583_359191718_296880460_25" class="audio_pr" onmouseover="addClass(this, 'over'); if (cur.hideTipTO) clearTimeout(cur.hideTipTO);" onmouseout="removeClass(this, 'over'); cur.hideTipTO = setTimeout(hide.pbind('audio_tip_wrap'), 100);" onmousedown="addClass(this, 'down'); audioPlayer.prClick(event);" onmouseup="removeClass(this, 'down')">
              <div id="audio_white_line2000469583_359191718_296880460_25" class="audio_white_line" onmousedown="audioPlayer.prClick(event);"></div>
              <div id="audio_back_line2000469583_359191718_296880460_25" class="audio_back_line" onmousedown="audioPlayer.prClick(event);"><!-- --></div>
              <div id="audio_load_line2000469583_359191718_296880460_25" class="audio_load_line" onmousedown="audioPlayer.prClick(event);"><!-- --></div>
              <div id="audio_pr_line2000469583_359191718_296880460_25" class="audio_progress_line" onmousedown="audioPlayer.prClick(event);">
                <div id="audio_pr_slider2000469583_359191718_296880460_25" class="audio_slider"><!-- --></div>
              </div>
            </div>
          </td>
          <td>
            <div id="audio_vol2000469583_359191718_296880460_25" class="audio_vol" onmouseover="addClass(this, 'over')" onmouseout="removeClass(this, 'over'); removeClass(this, 'down')" onmousedown="addClass(this, 'down'); audioPlayer.volClick(event)" onmouseup="removeClass(this, 'down')">
              <div id="audio_vol_white_line2000469583_359191718_296880460_25" class="audio_vol_white_line" onmousedown="audioPlayer.volClick(event);"><!-- --></div>
              <div id="audio_vol_back_line2000469583_359191718_296880460_25" class="audio_load_line" onmousedown="audioPlayer.volClick(event);"><!-- --></div>
              <div id="audio_vol_line2000469583_359191718_296880460_25" class="audio_progress_line" onmousedown="audioPlayer.volClick(event);">
                <div id="audio_vol_slider2000469583_359191718_296880460_25" class="audio_slider" onmousedown="audioPlayer.volClick(event);"><!-- --></div>
              </div>



Последнее исправление: ioexception (всего исправлений: 1)

Ответ на: комментарий от ziemin

Тем более, спарсить эту вакханалию при клике, то есть моментально — как блин, я понимаю что процессоры быстрые, но не на столько же...

ioexception
() автор топика
Ответ на: комментарий от ioexception

А что тут парсить, собственно? Плюс все важные DOM-элементы определены через id, а это ОЧЕНь быстро, по сравнению с любыми другими вариантами.

static_lab ★★★★★
()
Ответ на: комментарий от ioexception

Загляни в код ютуба, человек)))

Вообще забавно наблюдать как учеловек думает что знает как работает технология о которой он ничего не знает)

Noob_Linux ★★★★
()

Действительно, а чего тут особо парсить? Это ж не Perl какой-нибудь.

Miguel ★★★★★
()
Ответ на: комментарий от ioexception

Тем более, спарсить эту вакханалию при клике, то есть моментально — как блин, я понимаю что процессоры быстрые, но не на столько же...

оно кеширует. Ты лучше JS глянь.

emulek
()
Ответ на: комментарий от Noob_Linux

Так ютюб как раз и лагает. У меня при загрузке его начальной страницы 5-8 сек лаг в любом браузере. Насколько я помню вк так не делал(хотя может за несколько лет уже сломали).

MLP_Fan ★★
()

лал. тебе толковую книжку по БД посоветовать, что ли?

darkenshvein ★★★★★
()
Ответ на: комментарий от Noob_Linux

Менять тариф ради 1 сайта мне не хочется, поэтому буду дальше использовать youtube-viewer и mps-youtube.

MLP_Fan ★★
()
Ответ на: комментарий от Noob_Linux

0.01 ms, 10 gigabit, ~1 s Толщина не показатель ))

anonymous
()

Это может вызывать удивление, но в целом современные компьютеры очень быстрые и способны парсить подобные конструкции куда быстрее, чем сетевая карта будет их скачивать. Никакого rocket science в том, чтобы распарсить XML-подобное дерево нет (разве что кучка костыльков, подпирающих тот факт, что HTML даже в теории не валидный XML, а уж на практике...). И я даже не уверен, что эти JavaScript-строки парсятся до первого обращения к ним.

Тут скорее можно жаловаться на то, что вся эта муть в памяти лежит развесистыми деревьями. Но память нынче дешева, а на жалующихся смотрят непонимающе.

Legioner ★★★★★
()

V8 преобразует JS в машинный код. Производительность кода тестируется как производителями браузеров так и командой vk.

tlx ★★★★★
()

Гляжу на код вконтакта

ULTIMATE FACEPALM

itn ★★★
()
Ответ на: комментарий от tlx

V8 преобразует JS в машинный код.

как и bash.

Производительность кода тестируется как производителями браузеров так и командой vk.

ага, когда одни производители чего-то меняют, у других это тормозит. Сегодня «DOM-элементы определены через id, а это ОЧЕНь быстро», завтра всё будет иначе.

emulek
()
Ответ на: комментарий от dk-

Ну на это есть вполне объективные причины, не?)

Я бы на месте вк выделил бы определенный и не малый бюджет и проплачивал ddos-ы, перекупку сотрудников и прочее, что бы валить тк называемого «папу».

Да и не «папа» он никакой. Так, дальний еврейский родственник.

anonymous
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.