Jump to content
php.lv forumi
  • 0

Kaut kas JSON dzenāšanai starp serveri un Javascriptu


Wuu

Question

Pēdējie divi projekti uzrakstīti ar lielu prieku lietojot React. Bet joprojām kretinē kā es dzenēju ajax pieprasījumus. Gribās kaut ko mazāku, ērtāk lietojamu. Varbūt kungi varētu ieteikt?

Šī brīža risinājums...

 

Un kodā desmitiem šādu copy, pasta....

           $.ajax({
                url: 'api.php',
                type: 'POST',
                dataType: 'json',
                data: JSON.stringify(send),
                contentType: 'application/json; charset=utf-8',
                success: function(json) {
                    if (json[0].error === 0) {
                    ...        
                }.bind(this),
                error: function(xhr, textStatus, errorThrown){
                    ...
                }.bind(this)
            });
Edited by Wuu
Link to comment
Share on other sites

7 answers to this question

Recommended Posts

  • 0

Atvainojos, laikam nepareizi izteicos.

Samazināt teksta izmēru jau nav problēma, gribētos lai React komponenti paši pieprasa kādus datus viņiem vajag atjaunot, neskrienot caur props uz root komponentu ar pieprasījumu.

Vēl vairāk tracina, kad piemēram, pie componentDidMount() ir ajax pieprasījums, un tad, pie izmaiņas, piem. onClick. Jānosūta un atkal jāpieprasa jaunos datus. Papildus jāveic pārbaudes, vai serveris vispār ir atbildējis.

Būtība, React padara klienta puses veidošanu par izklaidi, bet jūtu ka datu saņemšana un nosūtīšana ir joprojām jēls pasākums, kas tiek darīts bez prieka.

 

Pēdējie divi projekti ir darbinieku stundu uzskaite (Stipri komplicētāk nekā izklausās) un noliktavas kontroles sistēma, operatoriem apstrādāt pasūtījumus un sekot līdzi noliktavas daudzumiem.

Edited by Wuu
Link to comment
Share on other sites

  • 0

Turpinājumā ReactJs, Facebook izstrādājis Relayjs un Graphql, kas kaut kādā veidā risina šī problēmas.

Pamatideja, React komponentes deklarē kādus datus viņām vajag (piemērs), tiek savākts nepieciešamo datu grafs, kuru pieprasa serverim, no kur saņemot atbildi, dati tiek smuki salikti pa komponentēm.

 

Produkcijā gan šo neesmu izmantojis.

Bet tavā gadījumā der ļoti vienkāršs mixins, kura loģika ir universāla visām komponentēm, tik jāpadod urlis no kurienes dabūt datus.

Es gan daru tā, ka man ir store, kurā glabājas entitīji un globāli dati un ajax atbildes tiek apstrādātas viso gadījumos un, ja tajās ir jauni entitīju dati, tad komponente, kura uz tiem klausās, automātiski atjaunojas. Tādā veidā man lielākā daļa ajax funkciju ir bez callbackiem. Piemēram, ja es userim nomainu parametru "name", tad man atnāk atbilde {entities:{users:{123:{name:"john"}}}}, tā automātiski tiek saglabāta entitīju storē un visas komponentes, kuras klausās uz konkrēto entitīju tiek pārrenderētas. Tādā veidā uz onClick, man būtu tikai request('user/changename',{id:123, name:"john"})

Būtībā tas ir kaut kādā veidā vienkāršos Relayjs darbības princips.

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
×
×
  • Create New...