Re: immediate display alert to user while Ajax request
Sabine Manaa <[email protected]>
| Newsgroups | gmane.comp.lang.smalltalk.squeak.seaside |
|---|---|
| Message-ID | <CA+UbgZZ8CGW2bHvZxDm7G=nCLeMJ1s6PS5Ttp2T5HebKGXCxtA@mail.gmail.com> |
and also thank you for the hint with the ThreadPool, Paul and Ramon. I have to implement this, too! 2017-07-24 12:18 GMT+02:00 Sabine Manaa <[email protected]>: > Hi Joachim, > > you are right. This was the point. > > I had another problem with getting the session in the forked process. I > asked in Discord and Max Leske helped. > To geht the session, I have to do the following in the Ajax request: > > | requestContext | > requestContext := WACurrentRequestContext value. > [ WACurrentRequestContext use: requestContext during: [ self session > dosomething ] ] fork. > > Thank you for your help! > Sabine > > 2017-07-23 10:55 GMT+02:00 jtuchel [via Smalltalk] <[hidden email] > <http:///user/SendEmail.jtp?type=node&node=4956534&i=0>>: > >> Sabine, >> >> I think you need to fork a new (background) process in order to have it >> run independently of the Ajax callbacks. The Ajax callbacks will be >> executed one after the other, there will never be any progress reporting. >> >> So I THINK what you absolutely have to do is to start the long running >> Ajax callback as another process. >> >> So start by putting your sequence of process steps in a >> >> [ >> ] fork. >> >> block and see if it improves things. >> >> >> I am using an inst var of the component instead of the session, but I >> guess that doesn't really matter. Using the session is probably a much >> better idea because you could then use this facility for a general solution >> that works for all ajax callbacks that run longer... >> >> >> HTH >> >> Joachim >> >> >> >> Am 21.07.17 um 17:31 schrieb Sabine Manaa: >> >> Hi Joachim, all, >> >> thanks a lot! I think I am very near to the solution but there is one >> problem remaining: within the Ajax block, the JQLoad seems to be >> "blocked". I explain: >> >> * I have an attribute @directUserMessage: in my session initialized with >> an empty string. >> >> *In my main view I have >>renderLoadIntervalMessageOn: html >> html paragraph >> id: 'spf-direct-message'; >> script: >> (html jQuery this load >> onComplete: >> (' javascript which shows the snackbar if spa-direct-message is set')); >> html: [ :r | self renderMessageOn: r ]; >> interval: 1 seconds); >> with: [ self renderMessageOn: html ] >> >> >>renderMessageOn: html >> self session directUserMessage isEmpty >> ifFalse: [ html render: self session directUserMessage ] >> >> >> I have my button invoking the report generation: >> >> onClick: >> (html jQuery ajax >> script: [ :script | >> self session generateReportFiles: script. >> ...]); >> with: 'PDF'. >> >> in >>generateReportFiles: >> "i set the directUserMessages:" >> self session directUserMessage: 'Erstelle Reisekostenabrechnungen, bitte >> warten...'. >> RKAPDFWriter new createCostReports: self. >> self session directUserMessage: 'Erstelle Belege, bitte warten...'. >> RKAPDFWriter new createReceiptReports: self. >> self session directUserMessage: 'Erstelle Fahrten, bitte warten...'. >> RKAPDFWriter new createVehicleReports: self. >> self session directUserMessage: 'Erstelle Buchungen, bitte warten...'. >> RKAPDFWriter new createBookingReports: self. >> self session directUserMessage: '' >> >> I tried I with a test button: >> html mdlButton >> onClick: >> (html jQuery ajax script: [ :script | self session directUserMessage: >> 'test' ]); >> with: 'set message' >> >> this works perfect - after clicking on the test button, the snackbar is >> showing every second again. >> So, I can say that the principle was clear and I have a possibility to >> show individual messages by setting the string in the session. >> >> BUT: while I am in the Ajax block, it does not work. >> I put a console.log() into the javascript code and AFTER finishing the >> Ajax, all the messages are put there. >> It seems to wait till the Ajax call is finished. >> >> I have put an output into the transcript: >> >> renderMessageOn: html >> Transcript crShow: Time now printString , '-' , self session >> directUserMessage. >> >> and there I see, that while I am in the Ajax block, there is no output. >> While I am not in the Ajax block, it renders the time into it each second. >> >> What is wrong here, can anyone explain? >> Joachim, do you also set the instance variable with the text from an Ajax >> block? >> >> Regards >> Sabine >> >> >> >> >> ------------------------------ >> View this message in context: Re: immediate display alert to user while >> Ajax request >> <http://forum.world.st/immediate-display-alert-to-user-while-Ajax-request-tp4956083p4956113.html> >> Sent from the Seaside General mailing list archive >> <http://forum.world.st/Seaside-General-f86180.html> at Nabble.com. >> >> >> _______________________________________________ >> seaside mailing list[hidden email] <http:///user/SendEmail.jtp?type=node&node=4956392&i=0>http://lists.squeakfoundation.org/cgi-bin/mailman/listinfo/seaside >> >> >> >> -- >> ----------------------------------------------------------------------- >> Objektfabrik Joachim Tuchel [hidden email] <http:///user/SendEmail.jtp?type=node&node=4956392&i=1> >> Fliederweg 1 http://www.objektfabrik.de >> D-71640 Ludwigsburg http://joachimtuchel.wordpress.com >> Telefon: +49 7141 56 10 86 0 Fax: +49 7141 56 10 86 1 >> >> >> >> _______________________________________________ >> seaside mailing list >> [hidden email] <http:///user/SendEmail.jtp?type=node&node=4956392&i=2> >> http://lists.squeakfoundation.org/cgi-bin/mailman/listinfo/seaside >> >> >> ------------------------------ >> If you reply to this email, your message will be added to the discussion >> below: >> http://forum.world.st/immediate-display-alert-to-user-while- >> Ajax-request-tp4956083p4956392.html >> To start a new topic under Seaside General, email [hidden email] >> <http:///user/SendEmail.jtp?type=node&node=4956534&i=1> >> To unsubscribe from Seaside, click here. >> NAML >> <http://forum.world.st/template/NamlServlet.jtp?macro=macro_viewer&id=instant_html%21nabble%3Aemail.naml&base=nabble.naml.namespaces.BasicNamespace-nabble.view.web.template.NabbleNamespace-nabble.view.web.template.NodeNamespace&breadcrumbs=notify_subscribers%21nabble%3Aemail.naml-instant_emails%21nabble%3Aemail.naml-send_instant_email%21nabble%3Aemail.naml> >> > > > ------------------------------ > View this message in context: Re: immediate display alert to user while > Ajax request > <http://forum.world.st/immediate-display-alert-to-user-while-Ajax-request-tp4956083p4956534.html> > Sent from the Seaside General mailing list archive > <http://forum.world.st/Seaside-General-f86180.html> at Nabble.com. > > _______________________________________________ > seaside mailing list > [email protected] > http://lists.squeakfoundation.org/cgi-bin/mailman/listinfo/seaside > > _______________________________________________ seaside mailing list [email protected] http://lists.squeakfoundation.org/cgi-bin/mailman/listinfo/seaside