Форум программистов, компьютерный форум, киберфорум
JavaScript
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.86/7: Рейтинг темы: голосов - 7, средняя оценка - 4.86
18 / 0 / 3
Регистрация: 29.01.2014
Сообщений: 180

Переписать цикл с php на js

07.09.2014, 22:13. Показов 1337. Ответов 6
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте!

Пишу парсер, в общем все идет как надо, но столкнулся с проблемой, а именно: так как я пишу на php то весь процесс происходит на стороне сервера, и когда парсером пользуются более 2х человек, сервер не справляется...

Возможно ли написать этот кусочек кода (цикл) на яваскрипте, чтобы основные действия происходили на стороне коиента

PHP
1
2
3
4
5
6
7
8
9
10
11
12
              if ($_REQUEST[share]){
                         $par1 = array();
                         foreach($result[share] as $id){
                                 // $input = array($result[share]);
                                         array_push($par1, $id);
        };
                $input = array_unique($par1);
        foreach($input as $num)
                       echo "<p>".$num."</p>";
        // print_r($input);
 
                };
Добавлено через 12 минут
или хотя бы вот этот кусочек

PHP
1
if ($_REQUEST[like]) foreach($result[like] as $id) echo $id."<br>";
0
Лучшие ответы (1)
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
07.09.2014, 22:13
Ответы с готовыми решениями:

Переписать цикл for через while
Помогите пожалуйста!!! Переписать цикл for через while : а) с положительным шагом б) с отрицательным шагом

Переписать цикл For-Next в While-Wend
Помогите переделать цикл: FOR i = 1 TO 10 FOR j = 1 TO 10...

Переписать цикл под Do While
Доброе время суток!!! есть вот такой код static void Main(string args) { string b = &quot;&quot;; ...

6
z-z
170 / 169 / 56
Регистрация: 22.06.2011
Сообщений: 980
08.09.2014, 09:57
сновидящий,

JavaScript
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
// только тут немного по другому
// предполагается, что вы до этого куска кода по нормальному подготовите переменные:
// в жс нет глобальной $_REQUEST, да и не нужен, найдите на странице эту переменную
// так же надо подготовить массив result[share]
// а лучше наверно $result целиком
 
if ($_REQUEST[share]){
    var par1 = [];
    for(var id in result[share]){
        par1.push(result[share][id]);
    };
    array_unique(par1);
    var input = par1;
    for(var num in input)
        console.log("<p>" + input[num] + "</p>"); // echo уже не прокатит, поэтому выводить можно как нибудь по другому,
                                                                // например в какой то блок вставлять или как то еще
};
 
// скопировал функцию с javascript.ru,
// аналог для array_unique,
// так как в чистом виде в жс такой функции нет
function array_unique( array ) {
 
    var p, i, j;
    for(i = array.length; i;){
        for(p = --i; p > 0;){
            if(array[i] === array[--p]){
                for(j = p; --p && array[i] === array[p];);
                i -= array.splice(p + 1, j - p).length;
            }
        }
    }
 
    return true;
}

PS. Если сервер не выдерживает двух человек, я бы посоветовал сменить сервер, а не код...
1
18 / 0 / 3
Регистрация: 29.01.2014
Сообщений: 180
08.09.2014, 20:09  [ТС]
тогда сразу вопросик к вам по теме)))
у меня пока стоит бесплатный хостинг, (про 2х человек на сайте- это мое предположение)
просто скрипт парсит другие сайты, и на выходе получается более 3000 спарсенных страниц, которые потом проверяются на повтор + берутся дополнительные плюшки в виде фильтров к спарсенным результатам....
Пока сервер тянет около 400 записей, после чего выходит ошибка (вроде 500 или 505 точно не помню) что-то типа сервис перегружен....
Вот я и думаю, если запускать сайт и им будут пользоваться (парсить 3000-5000 строк) одновременно 10-100 юзеров то сервер не потянет, ну или обойдется мне в 3000-4000 тыс в месяц...

Потом пришла идея сделать цикл на стороне клиента... Как вы посоветуете мне поступить? использовать жс или же мощный хостинг? что будет целесообразнее применить в данной ситуации
0
z-z
170 / 169 / 56
Регистрация: 22.06.2011
Сообщений: 980
08.09.2014, 21:04
сновидящий, сервер - это такой же компьютер, как и у вас дома.. только на сервере проц на порядок мощнее, ядек штук 8 ну и оперативы на много гигов больше, чем у вас)) поэтому, я думаю, лучше уж на сервере будет.... Ну и возможно есть вариант как то по умнее сделать, чтобы нагрузка не такая сильная была))

В любом случае я не профи в высоконагруженных приложениях, мало чем помогу =)
0
18 / 0 / 3
Регистрация: 29.01.2014
Сообщений: 180
08.09.2014, 21:09  [ТС]
Спасибо большое)
пока пробовать буду с дж.... остался последний вопрос: а именно "по нормальному подготовить переменные" - это объявить их в дж коде?

и как спихнуть дж скрипт в пхп?
Вот так?

PHP
1
2
3
код пхп
echo "<script charset="utf-8" src="/1.js"></script>";
код пхп
0
z-z
170 / 169 / 56
Регистрация: 22.06.2011
Сообщений: 980
08.09.2014, 21:36
Лучший ответ Сообщение было отмечено сновидящий как решение

Решение

да, переменные надо объявить и заполнить как то... я же не знаю, откуда у вас данные берутся=)

к примеру $_REQUEST[share] - это скорее всего текстовое поле с атрибутом name="share". Естественно к нему надо обратиться через js и достать его значение. С остальными переменными так же.

Впихнуть жс скрипт в пхп можно по разному в зависимости от ситуации. Так, как вы показали, тоже можно. Только надо учитывать одну вещь. Жс скрипт выполнится только тогда, когда страница загрузится в браузере клиента, а пхп выполняется за долго до того, как клиент увидел страницу. Я хочу сказать, что это не последовательные операции и не получится кусок кода сделать на пхп, затем вставить скрипт, который выполнит какие то расчеты, а потом опять продолжить пхп код =)

Ну то есть получится, если аяксом стучаться от клиента к серверу, но это уже другая история))
1
18 / 0 / 3
Регистрация: 29.01.2014
Сообщений: 180
08.09.2014, 22:07  [ТС]
Все четко и понято! большое спасибо)
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
08.09.2014, 22:07
Помогаю со студенческими работами здесь

Переписать код из цикла while в цикл for
Помогите, объясните, как из цикла while() переделать в for(;;;), конкретно на этом примере готовой задачи.. #include &lt;stdio.h&gt; ...

Цикл на Delphi переписать на ассемблер
не подскажете как вот этот код переписать на ассемблер? for i:= 0 to 11 do begin _y_temp:= 100; end;

Переписать программу, используя цикл Do.While
Добрый вечер! Как данную программу можно изменить, используя цикл Do..While? #include &quot;stdafx.h&quot; #include...

Переписать программу, используя цикл for
#include &lt;stdio.h&gt; #include &lt;conio.h&gt; void main() { int c; clrscr(); while ((c = getchar()) != EOF) putchar(c); ...

Переписать цикл с одним использованием for
for(m = 0; m &lt; q; m++) { for(n = 0; n &lt; q; n++) { for(o = 0; o &lt; e; o++) { mas3 += a*b;...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Работа со звуком через SDL3_mixer
8Observer8 08.02.2026
Содержание блога Пошагово создадим проект для загрузки звукового файла и воспроизведения звука с помощью библиотеки SDL3_mixer. Звук будет воспроизводиться по клику мышки по холсту на Desktop и по. . .
SDL3 для Web (WebAssembly): Основы отладки веб-приложений на SDL3 по USB и Wi-Fi, запущенных в браузере мобильных устройств
8Observer8 07.02.2026
Содержание блога Браузер Chrome имеет средства для отладки мобильных веб-приложений по USB. В этой пошаговой инструкции ограничимся работой с консолью. Вывод в консоль - это часть процесса. . .
SDL3 для Web (WebAssembly): Обработчик клика мыши в браузере ПК и касания экрана в браузере на мобильном устройстве
8Observer8 02.02.2026
Содержание блога Для начала пошагово создадим рабочий пример для подготовки к экспериментам в браузере ПК и в браузере мобильного устройства. Потом напишем обработчик клика мыши и обработчик. . .
Философия технологии
iceja 01.02.2026
На мой взгляд у человека в технических проектах остается роль генерального директора. Все остальное нейронки делают уже лучше человека. Они не могут нести предпринимательские риски, не могут. . .
SDL3 для Web (WebAssembly): Вывод текста со шрифтом TTF с помощью SDL3_ttf
8Observer8 01.02.2026
Содержание блога В этой пошаговой инструкции создадим с нуля веб-приложение, которое выводит текст в окне браузера. Запустим на Android на локальном сервере. Загрузим Release на бесплатный. . .
SDL3 для Web (WebAssembly): Сборка C/C++ проекта из консоли
8Observer8 30.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
SDL3 для Web (WebAssembly): Установка Emscripten SDK (emsdk) и CMake для сборки C и C++ приложений в Wasm
8Observer8 30.01.2026
Содержание блога Для того чтобы скачать Emscripten SDK (emsdk) необходимо сначало скачать и уставить Git: Install for Windows. Следуйте стандартной процедуре установки Git через установщик. . . .
SDL3 для Android: Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 29.01.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами. Версия v3 была полностью переписана на Си, в. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru