A vantagem de usar uma plataforma unificada para suas requisi\u00e7\u00f5es XMLHttpRequest e RESTful \u00e9 que voc\u00ea acaba podendo unificar tamb\u00e9m sua interface com o usu\u00e1rio.<\/p>\n
Muitas vezes seu servidor demora para responder e um belo \u00edcone de de espera suaviza as coisas com o usu\u00e1rio. Todavia, fazer isso em cada requisi\u00e7\u00e3o pode se tornar uma dor de cabe\u00e7a<\/p>\n
YeAPF (mais especificamente o ycomm<\/em>)\u00a0pode ser configurado para indicar toda vez que ele est\u00e1 ocupado com uma requisi\u00e7\u00e3o ou quando ela se esgotou ou retornou do servidor.<\/p>\n Obvio que se quer adicionar alguma anima\u00e7\u00e3o e tal, pode utilizar, por exemplo, y$(‘waitIcon’).deleteClass(‘hidden’) e y$(‘waitIcon’).addClass(‘hidden’); mas com o dito j\u00e1 \u00e9 suficiente para o come\u00e7o<\/p>\n <\/p>\n <\/p>\n","protected":false},"excerpt":{"rendered":" A vantagem de usar uma plataforma unificada para suas requisi\u00e7\u00f5es XMLHttpRequest e RESTful \u00e9 que voc\u00ea acaba podendo unificar tamb\u00e9m sua interface com o usu\u00e1rio. Muitas vezes seu servidor demora para responder e um belo \u00edcone de de espera suaviza as coisas com o usu\u00e1rio. Todavia, fazer isso em cada requisi\u00e7\u00e3o pode se tornar uma […]<\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"spay_email":"","jetpack_publicize_message":"","jetpack_is_tweetstorm":false},"categories":[49,8],"tags":[],"jetpack_featured_media_url":"","jetpack_publicize_connections":[],"jetpack_sharing_enabled":true,"jetpack_shortlink":"https:\/\/wp.me\/p5O6UV-4o","jetpack-related-posts":[{"id":315,"url":"http:\/\/www.yeapf.com\/wp\/?p=315","url_meta":{"origin":272,"position":0},"title":"Usando o yLexObj() para filtrar dados em um vetor","date":"agosto 22, 2016","format":false,"excerpt":"Digamos que tem uma lista de valores em um vetor grande em JS. N\u00e3o seria bom poder filtrar os dados de forma gen\u00e9rica escrevendo a condicional em uma string e sem ter que usar o eval()\u00a0do javascript? O c\u00f3digo abaixo \u00e9 um exemplo do que pode fazer usando o yloader.js\u2026","rel":"","context":"Em "Yet Another PHP Framework"","img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":321,"url":"http:\/\/www.yeapf.com\/wp\/?p=321","url_meta":{"origin":272,"position":1},"title":"Server Side Events com YeAPF","date":"janeiro 19, 2017","format":false,"excerpt":"Manter uma tela com dados din\u00e2micos atualizados n\u00e3o \u00e9 f\u00e1cil. Uma solu\u00e7\u00e3o \u00e9 empregar XMLHttpRequest e ficar fazendo polling sobre uma base de tempo regular. Assim perguntar\u00edamos ao servidor se h\u00e1 modifica\u00e7\u00f5es sobre o escopo desejado. O problema desta aproxima\u00e7\u00e3o \u00e9 que ficamos fazendo um monte de requisi\u00e7\u00f5es ao servidor\u2026","rel":"","context":"Em "Desenvolvimento"","img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":78,"url":"http:\/\/www.yeapf.com\/wp\/?p=78","url_meta":{"origin":272,"position":2},"title":"Drag and drop sobre um calend\u00e1rio YeAPF","date":"mar\u00e7o 30, 2014","format":false,"excerpt":"Espero que tenha em mente o post anterior sobre como construir um calend\u00e1rio b\u00e1sico com YeAPF. Este exemplo visa habilitar a fun\u00e7\u00e3o arrastar e soltar de uma lista ul para um calend\u00e1rio e precisa de dois arquivos: testarCalendario.css e testarCalendario.html. Partimos do suposto que o YeAPF est\u00e1 em \/var\/www\/YeAPF e\u2026","rel":"","context":"Post similar","img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":557,"url":"http:\/\/www.yeapf.com\/wp\/?p=557","url_meta":{"origin":272,"position":3},"title":"Monitorando mudan\u00e7a de aba em SPA","date":"agosto 23, 2019","format":false,"excerpt":"Aguardar por um evento \u00e9 melhor... YeAPF! tem um gestor de abas bem simples de usar que permite construir um SPA (Single Page Application) com muita facilidade. Tendo v\u00e1rias abas, uma coisa que quase com certeza vai querer fazer \u00e9 responder dinamicamente a essa mudan\u00e7a atualizando - por exemplo -\u2026","rel":"","context":"Post similar","img":{"alt_text":"","src":"https:\/\/i0.wp.com\/www.yeapf.com\/wp\/wp-content\/uploads\/2019\/08\/girl-wathcing-binoculars.jpeg?resize=350%2C200","width":350,"height":200},"classes":[]},{"id":91,"url":"http:\/\/www.yeapf.com\/wp\/?p=91","url_meta":{"origin":272,"position":4},"title":"Aplicativos mono p\u00e1gina","date":"mar\u00e7o 14, 2014","format":false,"excerpt":"Aplicativos que usam s\u00f3 uma p\u00e1gina t\u00eam um lugar assegurado no desenvolvimento de software atual e futuro. Bem feitos s\u00e3o elegantes e f\u00e1ceis de manter. Tamb\u00e9m s\u00e3o uma m\u00e3o na roda na hora de fazer um aplicativo que funcione tanto em desktop como em mobile. Para construirmos um aplicativo com\u2026","rel":"","context":"Em "Desenvolvimento"","img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":264,"url":"http:\/\/www.yeapf.com\/wp\/?p=264","url_meta":{"origin":272,"position":5},"title":"Versionamento de produ\u00e7\u00e3o","date":"janeiro 21, 2016","format":false,"excerpt":"Fala-se muito em versionamento de c\u00f3digo fonte. Isso est\u00e1 bom e tem muitas ferramentas que fazem isso. O YeAPF inclui certas ferramentas dentre as quais est\u00e1 o ydistbuilder. O prop\u00f3sito desta ferramenta \u00e9 produzir vers\u00f5es de distribui\u00e7\u00e3o. Ou seja, a vers\u00e3o que vai finalmente para o cliente. Em outras palavras,\u2026","rel":"","context":"Em "Desenvolvimento"","img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]}],"_links":{"self":[{"href":"http:\/\/www.yeapf.com\/wp\/index.php?rest_route=\/wp\/v2\/posts\/272"}],"collection":[{"href":"http:\/\/www.yeapf.com\/wp\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"http:\/\/www.yeapf.com\/wp\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"http:\/\/www.yeapf.com\/wp\/index.php?rest_route=\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"http:\/\/www.yeapf.com\/wp\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=272"}],"version-history":[{"count":2,"href":"http:\/\/www.yeapf.com\/wp\/index.php?rest_route=\/wp\/v2\/posts\/272\/revisions"}],"predecessor-version":[{"id":274,"href":"http:\/\/www.yeapf.com\/wp\/index.php?rest_route=\/wp\/v2\/posts\/272\/revisions\/274"}],"wp:attachment":[{"href":"http:\/\/www.yeapf.com\/wp\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=272"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/www.yeapf.com\/wp\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=272"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/www.yeapf.com\/wp\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=272"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}Seu HTML<\/h2>\n
<script src='js\/yloader.min.js'><\/script>\r\n...\r\n<div id=\"waitIcon\"><img src=\"img\/icone-de-espera.gif\"><\/div><\/pre>\n
Seu CSS<\/h2>\n
#waitIcon {\r\n display: none;\r\n position: fixed;\r\n right: 10px;\r\n top: 10px;\r\n}<\/pre>\nSeu JS<\/h2>\n
var myWaitIconControl = function(display) {\r\n if (display)\r\n y$('waitIcon').style.display='';\r\n else\r\n y$('waitIcon').style.display='none';\r\n}\r\n\r\n....\r\n\r\naddOnLoadManager(\r\n function() {\r\n ycomm.setWaitIconControl(myWaitControl);\r\n }\r\n);<\/pre>\n