• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

JavaScript - Uzyskiwanie wartości z bash'owego polecenia.

0 głosów
101 wizyt
pytanie zadane 11 stycznia w JavaScript, jQuery, AJAX przez danielos8 Nowicjusz (150 p.)

Witam serdecznie,

przeszukałem internet i nie mogę dojść do prawidłowego rozwiązania.
Mam na danej stronie skrypt JavaScriptu i chciałbym, żeby co 5 sekund pobierał wartość, którą uzyska dzięki komendzie bashowej. W PHP działa mi, ale chciałbym, żeby wartość ta odświeżała się na stronie bez ponownego jej ładowania.
W PHP wygląda to u mnie np. tak: 

  echo exec('cat plik');

Da się wykonać to w JS'ie?

2 odpowiedzi

+1 głos
odpowiedź 11 stycznia przez Fenix Pasjonat (21,230 p.)
wybrane 12 stycznia przez danielos8
 
Najlepsza
Możesz do tego użyć Ajaxa.
komentarz 11 stycznia przez danielos8 Nowicjusz (150 p.)

Co konkretnie mógłbym użyć? smiley

komentarz 11 stycznia przez CzikaCarry Nałogowiec (42,860 p.)
Nooo... Ajax działa tak, że możesz wykonać skrypt PHP asynchronicznie, czyli bez odświeżania strony.
komentarz 12 stycznia przez Fenix Pasjonat (21,230 p.)

Dokładnie jak kolega wyżej napisał, warto dodać że wracające ajax'y nie są synchroniczne. Ogólnie jeśli nie jesteś zaznajomiony z ajax'em myśle że warto abyś do tego celu użyj jQuery: Dokumentacja, warto również przeczytać by MDN oraz zainteresować sie formatem JSON

komentarz 12 stycznia przez shead VIP (125,440 p.)
Tylko, że dalej odpytywanie serwera co 5 sekund tylko przez jednego użytkownika(!) to niemądry pomysł, rzekłbym nawet że głupi (pomyśl co się będzie działo przy 100 użytkownikach podłączonych jednocześnie do witryny). Co masz w tym pliku, że musisz go odświeżać co 5 sekund?
komentarz 12 stycznia przez CzikaCarry Nałogowiec (42,860 p.)
Shead wiesz co to za strona KaraokeParty? Co prawda teraz jest zablokowana w Polsce, ale obciążenie i tak jest duże, a dane od każdego z setek użytkowników trafiają do serwera i na odwrót z wieeele większą częstotliwością niż 1 na 5 sekund, a mimo to strona nie ma żadnych problemów związanych z wydajnością.
komentarz 12 stycznia przez shead VIP (125,440 p.)
Nie mam pojęcia co to za strona i nie wiem jakie operacje są tam zrealizowane i w jaki sposób
komentarz 12 stycznia przez CzikaCarry Nałogowiec (42,860 p.)
Jest to strona, która porównuje Input z mikrofonu z oryginałem piosenki, tzw. karaoke. Odbywa się to po stronie serwera, a probkowanie inputa z mikrofonu jest bardzo częste, pewnie koło 10hz.
komentarz 13 stycznia przez Fenix Pasjonat (21,230 p.)
Shead a miałeś doczynienia kiedyś z reaktywnym portalem ,powiedzmy 10k uu? Oczywiście przez źle napisanego ajax'a można uwalić system, przykładem może być wordpress 5.4.3 i issue związany z systemem odzyskiwania hasła. Oczywiście możemy korzystać z socketów. Tylko że widzisz kolega który zadał pytanie zapytał w jaki sposób można uruchomić skrypt php, bez ponownego załadowania strony. Wiec jak myślisz na jakim poziomie kolega jest aktualnie? Napewno nie na takim które pozwala mu swobodnie przyswajać wiedze z różnych poziomów oraz technologi.
komentarz 13 stycznia przez shead VIP (125,440 p.)
Pytanie dotyczy dokładnie odczytu zawartości pliku znajdującego się prawdopodobnie na serwerze, a to można zrealizować  z dużą szansą 1) bez wywoływania komend systemowych, 2) bez używania plików, 3) bez trzymania pliku na serwerze. Stąd moje pytanie odnośnie tego co przechowuje w tym pliku :)
komentarz 14 stycznia przez CzikaCarry Nałogowiec (42,860 p.)
Możliwe, z dużą dozą prawdopodobieństwa, że dobrze prawisz :D
komentarz 14 stycznia przez Fenix Pasjonat (21,230 p.)

Mam na danej stronie skrypt JavaScriptu i chciałbym, żeby co 5 sekund pobierał wartość, którą uzyska dzięki komendzie bashowej

Pytanie dotyczy dokładnie odczytu zawartości pliku znajdującego się prawdopodobnie na serwerze, a to można zrealizować

 

Słucham? Ja rozumiem że ludzka natura działa zwykle na opór, i chcesz udowodnić swoją teze, ale Panie bez przesady. 

Nie wiem czy zdajesz sobie sprawe z tego że wykonanie polecenia bashowego może być dostepne dla okreslonej grupy osób. Przez co liczba requestów sie bardzo zmniejsza, może to być np określona grupa pracownicza. Na systemach np do sprzedaży internetowej pracują normalnie ludzie. 

A co do szybkości socketów a ajaxa na dosyć małej ilości reqestuów, podesłać Ci jakiś ciekawy artykuł z testami, czy sam dasz rade znaleźć w google?

Jaki problem miałeś przy tym 1k userów, czy to też wyssane z palca?

 

Nastepna rzecza, jest poziom człowieczka który zadaje pytanie, chcesz go uczyć socketów, w momencie w którym on nie wie jak działa ajax oraz asynchroniczność? 

komentarz 14 stycznia przez shead VIP (125,440 p.)
@Fenix, nie wiem ile takich osób będzie miało potencjalnie do takiego pliku, z resztą to bez znaczenia w kontekście tego co próbuję przekazać.

Chodziło mi o to, że istnieje spora szansa na zrealizowanie rozwiązania tego programu lepiej i to bez requestów albo z znacznym ich ograniczeniem, co z resztą opisałem w odpowiedzi którą nieumiejętnie wyciąłeś ;)

Nie chcę go uczyć socketów, ani ajaxa. Wspomniałem jedynie że prawdopodobnie można zrobić to lepiej, polecam nauczyć się czytać ze zrozumieniem, a nie wycinać w cytatach najbardziej istotne części wypowiedzi ;)

Dlatego darujmy sobie już dalszą dyskusję w tym wątku, bo powoli odbiega od tematu, jeżeli chcesz podsyktować to zapraszam na PW
komentarz 14 stycznia przez Fenix Pasjonat (21,230 p.)
Nie, nie odpisałeś. Prosze Cie przeczytaj tytuł wątku, przykład echo exec('cat plik'); jest w tym wypadku chyba najmniej ważny, kolega napisał że np to tak wygląda w php. Ale w pytaniu nie ma nic o żadnym pliku, a wykonaniu komendy bashowej. To w jaki sposób chcesz inaczej rozwiązać taki problem bez połączenia w żaden sposób z serwerem? Chetnie sie dowiem.
komentarz 14 stycznia przez shead VIP (125,440 p.)

Tutaj nie jest raczej wykonanie skryptu, a jego output skoro chcemy go pobrać, jednakże dalej uważam że bez interakcji autora pytania to jedynie puste dywagacje i:

jeżeli chcesz podsyktować to zapraszam na PW

0 głosów
odpowiedź 11 stycznia przez shead VIP (125,440 p.)
Nie (o ile ten plik będzie tylko na serwerze), JS działa w kontekście przeglądarki użytkownika i danej strony, a nie serwera (tzn kod js wykonuje się na komputerze przeglądającego witrynę).
komentarz 11 stycznia przez danielos8 Nowicjusz (150 p.)
Rozumiem.
Jednak potrzebne jest mi to do projektu, który i tak odpalam na własnym laptopie(gdzie mam serwer strony). Więc czy mógłbym w takim wypadku jakoś to wykonać?
komentarz 11 stycznia przez kubaapk Nałogowiec (32,500 p.)
Skoro Ci w PHPie działa, to zrób to w PHP, a na front wysyłaj json i obsłuż go ajaxem.

Podobne pytania

+2 głosów
0 odpowiedzi 141 wizyt
pytanie zadane 1 października 2016 w Systemy operacyjne, programy przez adio93 Nowicjusz (220 p.)
+11 głosów
2 odpowiedzi 253 wizyt
+1 głos
2 odpowiedzi 165 wizyt
pytanie zadane 18 czerwca 2016 w Sieci komputerowe, internet przez ignacjusz Bywalec (2,410 p.)
...