![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
![]() Grupa: Zarejestrowani Postów: 172 Pomógł: 7 Dołączył: 23.12.2005 Skąd: Wejherowo Ostrzeżenie: (0%) ![]() ![]() |
JS nie jest moją mocną stroną i wiedza sprowadza się do używania odrobinki ajaxa z jQuery.
Napotkałem pewien problem i zastanawiam się czy to jest do rozwiązania, mianowicie czy z JS można zrobić coś takiego jak z include w php, czyli zwyczajnie tym sposobem wkleić kawałek kodu z innego pliku? Mam taki fragmencik kodu (to jest ext js):
I teraz ten kawałek chciałbym wyciągnać do innego pliku tak żeby zmiana jakiejkolwiek wartości zadziałała we wszystkich podobnych plikach, których jest ze 20.
|
|
|
![]()
Post
#2
|
|
![]() Grupa: Zarejestrowani Postów: 2 350 Pomógł: 512 Dołączył: 4.01.2009 Skąd: Wrocław / Świdnica Ostrzeżenie: (0%) ![]() ![]() |
Zrób to w PHP i odpowiednim zapytaniem Ajaxowym.
lub użyj to: http://stackoverflow.com/questions/950087/...javascript-file -------------------- |
|
|
![]()
Post
#3
|
|
![]() Grupa: Zarejestrowani Postów: 172 Pomógł: 7 Dołączył: 23.12.2005 Skąd: Wejherowo Ostrzeżenie: (0%) ![]() ![]() |
Widziałem ten wątek, ale to nie to czego potrzebuję.
Nie chcę załączać funkcji, chcę tylko tą tablicę parametrów wypchnąć do zewnętrznego pliku, tak żeby można było to łatwo edytować. Php nie ma tu kompletnie zastosowania, bo musiałbym przebudować wszystko, a chcę sobie pracę ułatwić, a dnie dodać w diabła roboty. |
|
|
![]()
Post
#4
|
|
![]() Grupa: Zarejestrowani Postów: 2 350 Pomógł: 512 Dołączył: 4.01.2009 Skąd: Wrocław / Świdnica Ostrzeżenie: (0%) ![]() ![]() |
Mógłbyś jeszcze połączyć AJAX z eval, żeby pobrany tekst przekształcić do wykonywalnego kodu js. Tylko nie, żebym polecał Ci to rozwiązanie.
-------------------- |
|
|
![]()
Post
#5
|
|
![]() Grupa: Zarejestrowani Postów: 172 Pomógł: 7 Dołączył: 23.12.2005 Skąd: Wejherowo Ostrzeżenie: (0%) ![]() ![]() |
A nie da się tego jakoś wstawić do zmiennej, tej zmiennej wyciągnać do innego pliku i wtedy zaimportować ajaxem?
Edit... OK, problem rozwiązałem ![]() Plik 1.js
Plik drugi.js
Ten post edytował alex19 6.01.2015, 18:44:39 |
|
|
![]()
Post
#6
|
|
![]() Grupa: Zarejestrowani Postów: 3 034 Pomógł: 366 Dołączył: 24.05.2012 Ostrzeżenie: (0%) ![]() ![]() |
wystarczyło zrobić to samo w samym html dodać oba pliki w script
![]() |
|
|
![]()
Post
#7
|
|
![]() Grupa: Zarejestrowani Postów: 172 Pomógł: 7 Dołączył: 23.12.2005 Skąd: Wejherowo Ostrzeżenie: (0%) ![]() ![]() |
Tak, ale to ma głębszy cel. Zamysł był taki że to pliki js mają "być złączone", a nie "spinane" na około przez html, bo to by była dodatkowa komplikacja.
|
|
|
![]()
Post
#8
|
|
![]() Grupa: Zarejestrowani Postów: 3 034 Pomógł: 366 Dołączył: 24.05.2012 Ostrzeżenie: (0%) ![]() ![]() |
rozumiem, jednakże JQ samo w sobie jest dość powolną biblioteką, wiec kwestia określenia celów i kosztów
![]() |
|
|
![]()
Post
#9
|
|
![]() Grupa: Zarejestrowani Postów: 172 Pomógł: 7 Dołączył: 23.12.2005 Skąd: Wejherowo Ostrzeżenie: (0%) ![]() ![]() |
A jest jakiś inny sposób na "sklejenie" dwóch plików js razem, w takiej opcji jak powyżej?
Sądzę że ten zabieg specjalnie na wydajność nie wpłynie, aczkolwiek jest to cenna uwaga. |
|
|
![]()
Post
#10
|
|
![]() Grupa: Zarejestrowani Postów: 3 034 Pomógł: 366 Dołączył: 24.05.2012 Ostrzeżenie: (0%) ![]() ![]() |
być może masz rację, popularnym jest require, szczególnie w świecie node http://requirejs.org/docs/start.html
![]() wszytko zależy od tego jak często zamierzasz tak te pliki łączyć, bo pewnie 1-2 użycia nie wpłyną zbytnio na działanie aplikacji, ale ostatnio stałem nad wyborem technologi przy tworzeniu gry i jeden z programistów upierał się aby użyć do tego właśnie JQ, no i testy pokazały, że lepiej to było zrobić w czystym JS ![]() |
|
|
![]()
Post
#11
|
|
![]() Grupa: Zarejestrowani Postów: 172 Pomógł: 7 Dołączył: 23.12.2005 Skąd: Wejherowo Ostrzeżenie: (0%) ![]() ![]() |
Ale to kolejny js i trzeba by go dołaczyć w html, więc to średnie rozwiązanie :/
Potrzebuje maksymalnej prostoty, która ułatwi mi pracę i nie będzie powielała tak kodu jak jest teraz. Bardziej szukam (raczej nieistniejącego) wbudowanego rozwiązania w stylu "include skrypt.js" ![]() Pliki będą łączone raz, tylko podczas ładowania strony. Tak przynajmniej mi się wydaje, bo nic nie wskazuje na to by były ładowane, a co za tym idzie łączone wielokrotnie. |
|
|
![]()
Post
#12
|
|
![]() Grupa: Zarejestrowani Postów: 3 034 Pomógł: 366 Dołączył: 24.05.2012 Ostrzeżenie: (0%) ![]() ![]() |
to może http://phpjs.org/functions/include/
![]() z tymi użyciami to miałem na myśli ilość takich dołączeń, ale tak generalnie to po zakończeniu trybu developerskiego powinieneś ten kod poddać minifikacji i najlepiej zbudować mapę tego scriptu czyli http://www.html5rocks.com/en/tutorials/dev...ols/sourcemaps/ Ten post edytował com 8.01.2015, 01:57:34 |
|
|
![]()
Post
#13
|
|
Grupa: Zarejestrowani Postów: 717 Pomógł: 120 Dołączył: 18.04.2009 Ostrzeżenie: (0%) ![]() ![]() |
Kod wszytko zależy od tego jak często zamierzasz tak te pliki łączyć, bo pewnie 1-2 użycia nie wpłyną zbytnio na działanie aplikacji, ale ostatnio stałem nad wyborem technologi przy tworzeniu gry i jeden z programistów upierał się aby użyć do tego właśnie JQ, no i testy pokazały, że lepiej to było zrobić w czystym JS czasem można też mieszać podejścia i jQuery używać w jednych miejscach programu, a w gorących odwoływać się do DOM poprzez JS. Jednak i tak najlepiej w ogóle się nie odwoływać do DOM bez potrzeby, bo to najgorzej wpływa na wydajność... Kod Bardziej szukam (raczej nieistniejącego) wbudowanego rozwiązania w stylu "include skrypt.js" ponieważ JavaScript został źle zaprojektowany (podobnie jak PHP zresztą, więc nie ma co się śmiać), to o pewnych rzeczach zapomnieli. W tym o importach (ale mają być w nowej wersji JavaScripta). Tym niemniej ludzie sobie zawsze poradzą i przez tyle lat stworzono z kilka conajmniej, jeśli nie kilkanaście niestandardowych sposobów na to, co piszesz, moje ulubione: 1. po prostu konkatenujesz ze sobą pliki, i dodajesz source mapę. są gotowe pluginy do tego. Wystarczy zainstalować Grunt'a, i dodać wtyczkę grunt-contrib-concat, i odpowiednio skonfigurować. 2. albo Browserify. Czyli piszesz program jakbyś pisał w NodeJS (i importujesz tak: Kod var nazwaBiblioteki = require('nazwabiblioteki'); eksportujesz tak: Kod module.exports.symbolDoEksportowania = cosTam; a potem uruchamiasz program, który się nazywa Browserify i on ci wszystkie te powiązane pliki pakuje w jeden plik, i też przy okazji może wygenerowac source mapę. No i ogólnie do takich rzeczy przydaje się zainstalować sobie na dysku środowisko NodeJS oraz Grunt. Oraz znać podstawy NodeJS. Ale jeśli coś planujesz robić dłużej niż dwa tygodnie to opłaca się tego poduczyć, bo korzyści są duże. Ten post edytował PrinceOfPersia 8.01.2015, 10:42:49 -------------------- |
|
|
![]()
Post
#14
|
|
![]() Grupa: Zarejestrowani Postów: 172 Pomógł: 7 Dołączył: 23.12.2005 Skąd: Wejherowo Ostrzeżenie: (0%) ![]() ![]() |
to może http://phpjs.org/functions/include/ ![]() z tymi użyciami to miałem na myśli ilość takich dołączeń, ale tak generalnie to po zakończeniu trybu developerskiego powinieneś ten kod poddać minifikacji i najlepiej zbudować mapę tego scriptu czyli http://www.html5rocks.com/en/tutorials/dev...ols/sourcemaps/ Fajna opcja, ale gdzieś tą funkcję trzeba dopisać, więc kółko się zamyka, bo albo powielę kod i w każdym pliku, który ma mieć doklejony kawałek(zmienna) dopiszę tą funkcję albo robić jakąś partyzantkę i dopisać tą funkcję ni stąd ni zowąd w jakimś innym "wspólnym" pliku, który jest załączany w html. |
|
|
![]()
Post
#15
|
|
![]() Grupa: Zarejestrowani Postów: 3 034 Pomógł: 366 Dołączył: 24.05.2012 Ostrzeżenie: (0%) ![]() ![]() |
owszem ale z JQ robisz dokładnie to samo, też jest dołączany, a te funkcje wystarczy że nawet dołączysz w samym html jako scripta, bo idea w każdym pliku oddzielnie nie sensu
![]() bo tak czy inaczej, to nie ma znaczenia bo każdy z plików dołączonych w html ze sobą się "widzi" a itak wszystko to składa sie w 1, podział na pliki powstał dla trybu developerskiego ale tworzenie wielu plików na produkcje nie ma sensu, widzę chcesz stworzyć coś na wzór importa z css tylko w dużej mierze te rozwiązanie tam opóźnia rendering zamiast przyspieszyć. PrinceOfPersia w pełni się z Tobą zgadzam, odnośnie przytoczonego mojego cytatu to tam w głównej mierze chodziło o to, że JQ jest sie łatwo nauczyć i ten programista go znał, ale brakowało podstaw samego js, no ale to poza tematem ![]() |
|
|
![]()
Post
#16
|
|
![]() Grupa: Zarejestrowani Postów: 172 Pomógł: 7 Dołączył: 23.12.2005 Skąd: Wejherowo Ostrzeżenie: (0%) ![]() ![]() |
Zostaje przy imporcie przez jQuery, bo to wymaga najmniej zachodu i zmiany. Jedynie muszę przeedytować wszystkie pliki js (dołaczyć zmienna, wywalić wartości, zamienić na zmienna). Wszystkie inne opcje wymagały by dodatkowo edycji przynajmniej plików html/php, a z założenia zmiana miała być jak najmniejsza, a ułatwić pracę.
Łączenie js też nie wchodzi w grę, bo jest ich tylko kilka na moduł (oczywiście dla każdego inne), a ja właśnie chcę powyciągać na zewnątrz części wspólne, tak żeby robiąc jakąkolwiek zmianę/poprawkę robić to raz a nie 10 i jeszcze szukać za każdym razem od nowa kodu. |
|
|
![]() ![]() |
![]() |
Wersja Lo-Fi | Aktualny czas: 29.04.2025 - 10:01 |