JQuery өте үлкен құжатта жұмыс істей ме?

Эй, онда бағдарламалау пепс! Менің сұрағым бар: jQuery. Бізде өте үлкен HTML есебін жасайтын бағдарламалық жасақтамасы бар ... 500-2000 баспа бетінен үлкен. Ол қатты дискіден жүктеу үшін Google Chrome-ды 12-20 секунд аралығындағы уақытта алуға болады.

Есептің HTML нұсқасын кейбір қосымша функцияларды беру үшін ғана қызмет ететін кейбір JavaScript бар. Қазіргі кезде барлық оқиғалар HTML onclick с және т.б.

Егер мен jQuery-ге айналдырып, оқиғаларды байланыстыратын селекторларды қолдансаңыз, селекторлар он мыңдаған элементтерге оңай сәйкес болуы мүмкін. Сонымен қатар, jQuery (мысалы, $ (document) .ready() ) пайдаланудың әдеттегі жолы) басу оқиғасы құжат толығымен жүктелмейінше жанбайды.

So the questions are: Is jQuery up to this task? Or am I better suited leaving inline script? If it is, are there certain techniques I need to use to make it work well? And is there a way to circumvent the "no events until document load" scenario?

And a secondary question (this one just occurred to me as I was writing this): This report is being sold to a client. What are my license obligations if jQuery is included as apart of the report?

Edit

@ jfriend00: Мен бұны қалай жасауға болатыны туралы біраз шығынға ұшырадым (есепті бөлу). Баяндама екі форматта шығарылады: HTML және PDF. Клиенттерде секцияларды басып шығара алатын сандық қолжетімділік бар. Олар сондай-ақ HTML нұсқасын қажет етеді, себебі ол негізгі бөліктерді байланыстыратын анкерлерді қамтамасыз етеді. JavaScript есепті негіздеген негізгі деректерге шолу жасайтын қалқымалы терезеге мүмкіндік береді. Не болды, масштабтау мәселесіне айналдырдық. Талданып отырған деректер айтарлықтай өсті, нәтижесінде алынған есеп көлемі де артты.

Құпия себептер бойынша есептің онлайн режимінде немесе ішкі интранетте болмауы мүмкін. Ол жергілікті машинамен жұмыс істейтін болады.

Егер кімде-кім осындай керемет шешім қабылдауға кеңес берсе, мен сіздің идеяңызды тыңдағым келеді. Бұл мәселе мені біраз уақытқа созды.

2
@epascarello сілтеме үшін рахмет!
қосылды автор jwatts1980, көзі
@ jfriend00: Пікіріңізге қатысты қосымша ақпаратпен сұрақты жаңарттым.
қосылды автор jwatts1980, көзі
@ jfriend00: Оларға HTML-файлдардың қысылған каталогын жіберу болып табылады деп ойлаймын. Беттерді тез сақтау үшін, баяндаманы 100-200 бөлек құжаттарға бөлуге тура келеді.
қосылды автор jwatts1980, көзі
@ jfriend00: Сіздің кеңесіңізді бағалаймын. Біздің клиенттердің пікірлері есептерге қатысты тек оң болды. Бірақ, менің ойымша, бұл біздің есебіміз олар қажетті ақпаратқа жетудің жалғыз жолы, сондықтан олар оны жасайды. Бірақ менің ойымша, клиент емес, әзірлеуші. Сіз ұсынғандай, олар туралы есеп оңай таба алатындығын ойламаймын. Алайда, клиент ешқандай наразылық білдірмегенде, уақытты және шығынды ақтауға болады.
қосылды автор jwatts1980, көзі
қосылды автор epascarello, көзі
Өзіңізді және көрермендеріңізді зор пайда көріңіз. Сіздің веб-сайтыңызға жаңа дизайн қажет. Динамикалық мінез-құлықты қосымша деректерді 2000 парақтық деректермен емес, бір уақытта жүктелетін деректерге жүктеу үшін қосу керек. jQuery компьютерде жеткілікті жадыңыз болғанша және шыдамдылықпен жұмыс істесе, бұл - белгілі бір операциялардың аяқталуын қанша уақыт күткіңіз келетіні туралы мәселе.
қосылды автор jfriend00, көзі
Ешкім ешқашан 2000 бетті оқып шыққысы келмегендіктен, сіз бұл мәселені әдетте шеше отырып, көрерменге қажетті қызықтыратын деректерге өтуге мүмкіндік бересіз, содан кейін сіз осы деректерді ajax немесе жаңа бетті пайдаланып жүктеп, көрсетесіз жүк. Егер олар әртүрлі деректерді көргісі келсе, сіз әртүрлі деректерді динамикалық түрде жүктеп, оларға көрсетеді. Бұл ойлаушы дизайнды қажет етеді және көрермен сіз көргіңіз келетін нәрсені қалай айтқысы келетінін және сол ақпаратты алуға және көрсету мүмкіндігін қайта ойластырады. Бірақ, ауқымдылық және өнімділік үлкен.
қосылды автор jfriend00, көзі
Мен тақырыпты білмеймін, сондықтан ол бөлуге қалай көмектесе алмайды, бірақ нәтижелерді көп бетті шарлауға ешқандай ақылға қонымды тәсілді қарастыра алмасаңыз, сіз не түсінесіз? қараушы қажет болуы мүмкін немесе сіз бұл мәселені шынымен қайта қарастырмайсыз. Ешкімге 2000 бет бірден экранда қажет емес.
қосылды автор jfriend00, көзі
Немесе сіз қисықтан алшақ бола аласыз және өзіңіздің клиенттеріңізбен көшбасшылықты көрсете аласыз және олардың деректері қаншалықты қажет екенін табу қиындықтарына байланысты және жүктелу уақытының өнімділігінен туындағандықтан, пайдаланушы тәжірибесі азайып бара жатқандығы туралы деректердің жеткілікті деңгейде ұсынылуын ұсынады және олар қазіргі және келешекке арналған үлкен көлемдегі деректермен жақсы жұмыс жасайтын дизайнмен бірге келетін жаңа жобаны қарастырыңыз. Мен клиенттің шоттарды төлеп жатқандығын және олар қайда ақша жұмсау керектігін шешеді деп ойлаймын, бірақ кейде сіз қандай мәселелерге назар аудару керек екенін үйретуіңіз керек.
қосылды автор jfriend00, көзі
500-2000 бет артық жазылған ... оны қандай да бір түрде бөліп тастаңыз
қосылды автор darioo, көзі

4 жауаптар

document.ready болсаңыз, сіз оқиғаларды байланыстыру үшін .live() функциясын пайдалана аласыз, себебі элементтер өңделетін элементтер қосылады, себебі элементтер элементтер DOM-ге қосылады:

Орнына:

$(function() {
    $().bind(, );
});

.live() қолдануға болады:

$().live(, );

.live() сипаттамасы ( http://api.jquery.com/live/ ):

Ағынды сәйкес келетін барлық элементтер үшін оқиға өңдегішін қосыңыз   селектор, қазір және болашақта.

4
қосылды
JQuery-ге қосылсам, бұны көремін. Жауабыңызға рахмет!
қосылды автор jwatts1980, көзі

jquery кез келген тапсырманы орындауға дайын. Сұрақ: егер браузер осы есептер жүктеле алса, сіз оны сақтай аласыз.Сондай-ақ, 100-ге жуық жолдан кейін баяндамадағы «әрбір іске қосу процедурасы» директивасын есептердегі әрбір белгілі бір санды енгізе аласыз, онда JS қоңырауы бар сценарийді 100 сызықпен бастаңыз.

Содан кейін тағы 100 жол баяндамасы және басқа функция шақыру. Қатерлі, бірақ кемінде бірінші бірнеше жүздеген сызықтар интерактивті болады, қалған беттер жүктеледі.

№2 болсақ, бұл заңды мәселе. Jquery-дің қосарлы MIT/GPL лицензиялауымен, сондықтан сіз жақсы, бірақ сенімді болу үшін адвокатпен сөйлесіңіз. «Бірақ интернеттегі кейбір кездейсоқ қателіктер жақсы деп мәлімдеді!» егер авторлық құқықты бұзу туралы реп мәжбүрлеу туралы сотқа тартылса, жарамды қорғаныс емес.

2
қосылды

Лицензия бөлігіне келер болсақ, jQuery-ді қолдануға болады және клиентті енгізудің нақты ережелері болмағандықтан ойыңызша жақсы.

Ойын бөлігі болсам, jQuery мәселе емес деп ойлаймын. Әрине, бәрі үлкен DOM-мен біраз баяулайды. Менің ойымша, сіз браузерлерді қарауыңыз керек, себебі олардың барлығы сценарийлерді орындау үшін әр түрлі JS қозғалтқыштарын пайдаланады.

Егер сценарий бәрібір баяуласа, онда сіз бөлімдерді бөліп немесе нақты селекторларды қосып, есеп битіңізді битпен өңдегеніңіз жөн.

1
қосылды

Мазмұнды динамикалық түрде жүктеу үшін 500-2000 баспа беті құжатын пішімдеңіз және ajax пайдаланыңыз.

1
қосылды