Ответы пользователя по тегу JavaScript
  • Как защитить сайт от выкачки через инспектор?

    latteo
    @latteo
    Как я понял под инспектором понимается Chrome DevTools или аналогичные инструменты в других браузерах.

    Конкретно в хроме довольно сложно снифать WebSockets сделанное через Socket.IO с добавлением на страницу через ивенты. И при сохранении в har эти данные в файл не пишутся.
    Обход - делать парсинг через написание JS для запуска в консоли Chrome DevTools - это уже хороший отсев, не всякий станет так заморачиваться.
    Ответ написан
    Комментировать
  • Скрипт, выполняемый на JavaScript за секунду, на PHP за 30 секунд проходит только 20%. В чём причина?

    latteo
    @latteo
    php можно ускорить в 2-3 раза, если сделать выход из циклов в последнем условии:
    if( 100*$d+10*$g+$j + 100*$j+10*$a+$e + 100*$b+10*$h+$f == 1000*$d+100*$d+10*$a+$b && $f*$c/$j == 10*$g+$a) {
                echo " a=",$a, " b=",$b, " c=",$c, " d=",$d, " e=",$e, " f=",$f, " g=",$g, " h=",$h, " j=",$j;
                break 9;
              }


    Ради фана переписал 2й алгоритм на Go
    package main
    
    import "fmt"
    import "time"
    
    func main() {
        st :=  time.Now().UnixNano()
        top:
        for a := 1; a<10; a++ {
          for b := 1; b<10; b++ {
            if b == a { continue; } else {
              for c := 1; c<10; c++ {
                if c==b || c==a { continue; } else {
                  for d := 1; d<10; d++ {
                    if  d==c || d==b || d==a { continue; } else {
                      for e := 1; e<10; e++ {
                        if e==d || e==c || e==b || e==a { continue; } else {
                          for f := 1; f<10; f++ {
                            if f==e || f==d || f==c || f==b || f==a { continue; } else {
                              for g := 1; g<10; g++ {
                                if g==f || g==e || g==d || g==c || g==b || g==a { continue; } else {
                                  for h := 1; h<10; h++ {
                                    if h==g || h==f || h==e || h==d || h==c || h==b || h==a { continue; } else {
                                      for j := 1; j<10; j++ {
                                        if j==h || j==g || j==f || j==e || j==d || j==c || j==b || j==a { continue; } else {
                                          if 100*d+10*g+j + 100*j+10*a+e + 100*b+10*h+f == 1000*d+100*d+10*a+b && f*c/j == 10*g+a {
                                            fmt.Println(" a=", a, " b=", b, " c=", c, " d=", d, " e=", e, " f=", f, " g=", g, " h=", h, " j=", j)
                                            break top
                                          }}}}}}}}}}}}}}}}}}
                    
        elapsed := time.Now().UnixNano()
        delta := ( float64(elapsed) - float64(st) )/ 1e6
        fmt.Println("Время выполнения (ms): ", delta)
    }


    Ну и JS тоже разжился break`ом и профилированием
    var time = performance.now();
    // некий код
    time = performance.now() - time;
    console.log('Время выполнения (ms): ', time);

    по времени в 2 раза медленне GO

    Лучшие результаты на моей машине:
    php - 600мс
    js - 40мс
    go - 20мс
    Ответ написан
    3 комментария