{"id":421,"date":"2006-03-20T23:27:46","date_gmt":"2006-03-20T23:27:46","guid":{"rendered":"http:\/\/osmeusapontamentos.com\/?p=421"},"modified":"2006-03-20T23:27:46","modified_gmt":"2006-03-20T23:27:46","slug":"remote-scripting-uma-introduo","status":"publish","type":"post","link":"https:\/\/osmeusapontamentos.com\/index.php\/2006\/03\/20\/remote-scripting-uma-introduo\/","title":{"rendered":"Remote Scripting &#8211; Uma introdu\u00e7\u00e3o"},"content":{"rendered":"<p>Publicado originalmente em 21-mai-2001<br \/>\nComecei a fazer este artigo tendo como objectivo explicar como ter 2 combos ligadas entre si sem ter necessidade de actualizar a p\u00e1gina de cada vez que se seleccionar uma op\u00e7\u00e3o (ver artigo de Jo\u00e3o Vieira &#8220;<a href=\"http:\/\/www.pt4free.net\/artigos\/Default.asp?nartigo=15\">Uso de 2 Combos Ligadas Entre Si<\/a>&#8220;). Como o remote scripting se trata de uma tecnologia que \u00e9 um pouco complicada de utilizar sem perceber minimamente o que est\u00e1 a acontecer tive que dividir essa explica\u00e7\u00e3o em 2 artigos. Assim, neste irei explicar o que \u00e9 o remote scripting e como o por a funcionar e no pr\u00f3ximo irei ent\u00e3o demonstrar como ligar 2 combos.<br \/>\nTanto refresh para nada<br \/>\nO meu trabalho normalmente n\u00e3o \u00e9 desenvolver sites, mas sim aplica\u00e7\u00f5es para intranets que s\u00e3o utilizadas exaustivamente durante um dia inteiro de trabalho por v\u00e1rias pessoas. Neste tipo de ambiente, onde a rapidez de introdu\u00e7\u00e3o de dados \u00e9 important\u00edssima, n\u00e3o podemos pensar em obrigar as pessoas a esperar por um refresh s\u00f3 porque em vez de utilizar a selec\u00e7\u00e3o por defeito quiseram\/tiveram que seleccionar outra op\u00e7\u00e3o. Eu precisava portanto de ter um mecanismo que me permitisse actualizar o conte\u00fado de uma p\u00e1gina sem que nesse processo o utilizador perdesse o controlo da aplica\u00e7\u00e3o. A solu\u00e7\u00e3o apareceu j\u00e1 h\u00e1 algum tempo (a primeira vez que a vi e experimentei foi com o aparecimento do Visual InterDev 6.0) e chama-se remote scripting. De uma forma muito sucinta o que esta tecnologia permite \u00e9 que uma p\u00e1gina possa  sem ter que ser recarregada  executar uma fun\u00e7\u00e3o que est\u00e1 noutra p\u00e1gina e devolver os resultados \u00e0 p\u00e1gina inicial. Como certamente perceber\u00e3o esta facilidade de comunicar com outras p\u00e1ginas abre imensas possibilidades mas deixo isso para outro eventual artigo &#8211; entretanto recomendo que vejam os links que est\u00e3o no fim desta p\u00e1gina para outros sites que falam sobre este tema.<\/p>\n<p>Como por a funcionar<br \/>\nDepois de fazer o download dos <a href=\"http:\/\/msdn.microsoft.com\/scripting\/remotescripting\/x86\/rs10ben.exe\">ficheiros necess\u00e1rios<\/a> e correr esse execut\u00e1vel ir\u00e1 ficar com um conjunto de tr\u00eas ficheiros, o rs.asp, rs.htm e rsproxy.class e duas pastas que aconselho vivamente a dar uma vista de olhos  docs e samples.Nos vossos projectos s\u00f3 ir\u00e3o precisar dos tr\u00eas ficheiros que referi, ou seja para poderem come\u00e7ar a utilizar o remote scripting basta simplesmente copiar esses ficheiros para dentro do vosso site. Como se tratam de ficheiros ASP e HTML poder\u00e3o obviamente customizar o c\u00f3digo origem de forma a criar novas funcionalidades. Para al\u00e9m disso o remote scripting \u00e9 uma tecnologia cross-plataform j\u00e1 que funciona quer em Netscape quer em IE.Uma das vantagens do remote scripting \u00e9 que n\u00e3o obriga a que a p\u00e1gina que o utilizador est\u00e1 a ver (que pode ser uma p\u00e1gina HTML) tenha que ser recarregada quando queremos actualizar o seu conte\u00fado. Isto acontece porque nessa p\u00e1gina vamos passar a incluir um applet (rsproxy.class) cuja fun\u00e7\u00e3o \u00e9 receber os pedidos da p\u00e1gina que estamos a ver e reencaminhar esse pedido para a p\u00e1gina ASP que est\u00e1 no servidor. Para conseguirmos uma comunica\u00e7\u00e3o efectiva entre as p\u00e1ginas HTML e ASP temos ainda que incluir na p\u00e1gina HTML uma refer\u00eancia a uma biblioteca de fun\u00e7\u00f5es que est\u00e1 em rs.htm, e na p\u00e1gina ASP uma refer\u00eancia a rs.asp.<br \/>\n<img loading=\"lazy\" decoding=\"async\" src=\"http:\/\/msdn.microsoft.com\/library\/en-us\/dnclinic\/html\/scripting0499-1.gif\" border=\"0\" height=\"261\" width=\"499\" \/><\/p>\n<p>Imagem retirada do artigo &#8220;<a href=\"http:\/\/msdn.microsoft.com\/workshop\/languages\/clinic\/scripting041299.asp\">Remote Scripting<\/a>&#8221;<br \/>\n<code><\/code><\/p>\n<p align=\"center\">Exemplo p\u00e1gina ASP<\/p>\n<p><!-- code formatted by http:\/\/manoli.net\/csharpformat\/ --><\/p>\n<pre>&lt;%@ LANGUAGE=VBSCRIPT %&gt;<\/pre>\n<pre><\/pre>\n<pre>&lt;% RSDispatch %&gt;<\/pre>\n<pre>&lt;!--#INCLUDE FILE=\"_ScriptLibrary\/rs.asp\"--&gt;<\/pre>\n<pre><\/pre>\n<pre>&lt;SCRIPT RUNAT=SERVER Language=javascript&gt;<\/pre>\n<pre><\/pre>\n<pre>function Description()<\/pre>\n<pre>{<\/pre>\n<pre>this.calcularSoma= calcularSoma;<\/pre>\n<pre>}<\/pre>\n<pre><\/pre>\n<pre>public_description = new Description();<\/pre>\n<pre><\/pre>\n<pre>function calcularSoma(a, b)<\/pre>\n<pre>{<\/pre>\n<pre>return (Number(a)+Number(b))<\/pre>\n<pre>}<\/pre>\n<pre><\/pre>\n<pre>function enviarErro()<\/pre>\n<pre>{<\/pre>\n<pre>var erro=new Error(1,\"mensagem de erro\")<\/pre>\n<pre>return erro<\/pre>\n<pre>}<\/pre>\n<pre>&lt;\/SCRIPT&gt;<\/pre>\n<p align=\"center\">Tal como tinha referido temos que incluir na nossa p\u00e1gina ASP o ficheiro rs.asp. Ele pode estar localizado em qualquer part do seu site, \u00e9 preciso \u00e9 ter em aten\u00e7\u00e3o qual o direct\u00f3rio em que est\u00e1 para que o ficheiro seja realmente inclu\u00eddo na sua p\u00e1gina.\u00c9 necess\u00e1rio incluir a chamada a RSDispacth que \u00e9 uma fun\u00e7\u00e3o que est\u00e1 definida em rs.asp e que procede quer \u00e0 recep\u00e7\u00e3o dos pedidos por parte de outras p\u00e1ginas  e sua tradu\u00e7\u00e3o para as fun\u00e7\u00f5es internas  quer ao retorno dos resultados.A componente essencial ser\u00e1 a defini\u00e7\u00e3o de quais as fun\u00e7\u00f5es que esta p\u00e1gina ir\u00e1 disponibilizar. No exemplo que tenho em cima, embora a p\u00e1gina tenha duas fun\u00e7\u00f5es (enviarErro e calcularSoma) somente a fun\u00e7\u00e3o calcularSoma \u00e9 acess\u00edvel por outras p\u00e1ginas j\u00e1 que s\u00f3 esta est\u00e1 definida na fun\u00e7\u00e3o Description().<\/p>\n<p>Exemplo p\u00e1gina HTML<\/p>\n<pre>&lt;HTML&gt;<\/pre>\n<pre><\/pre>\n<pre>&lt;HEAD&gt;<\/pre>\n<pre><\/pre>\n<pre>&lt;TITLE&gt;Teste&lt;\/TITLE&gt;<\/pre>\n<pre><\/pre>\n<pre>&lt;SCRIPT LANGUAGE=\"javascript\"&gt;<\/pre>\n<pre>function funcao1()<\/pre>\n<pre>{<\/pre>\n<pre>var aspObject = RSGetASPObject(\"remote.asp\");<\/pre>\n<pre>var a=aspObject.calcularSoma(1,2)<\/pre>\n<pre>alert(a.return_value)<\/pre>\n<pre>}<\/pre>\n<pre>function funcao2()<\/pre>\n<pre>{<\/pre>\n<pre>var aspObject = RSGetASPObject(\"remote.asp\");<\/pre>\n<pre>var a=aspObject.enviarErro()<\/pre>\n<pre>alert(a.data)<\/pre>\n<pre>alert(a.return_value)<\/pre>\n<pre>}<\/pre>\n<pre>&lt;\/SCRIPT&gt;<\/pre>\n<pre>&lt;\/HEAD&gt;<\/pre>\n<pre><\/pre>\n<pre><\/pre>\n<pre>&lt;BODY&gt;<\/pre>\n<pre>&lt;script language=\"JavaScript\" src=\"_ScriptLibrary\/rs.htm\"&gt;&lt;\/script&gt;<\/pre>\n<pre>&lt;script language=\"JavaScript\"&gt;RSEnableRemoteScripting(\"_ScriptLibrary\/\");&lt;\/script&gt;<\/pre>\n<p>Na p\u00e1gina HTML, para inicializar a liga\u00e7\u00e3o entre as duas p\u00e1ginas, \u00e9 necess\u00e1rio incluir o ficheiro rs.htm. Se tiverem curiosidade e forem inspeccionar o interior desse ficheiro poder\u00e3o ver que ele por sua vez chama o applet que tinha referido  rsproxy.class.Depois \u00e9 necess\u00e1rio chamar a fun\u00e7\u00e3o RSEnableRemoteScripting que recebe como par\u00e2metro o direct\u00f3rio onde est\u00e1 localizado o applet.A quest\u00e3o dos direct\u00f3rios, quer aqui quer no ficheiro ASP, \u00e9 uma fonte de alguns problemas nos primeiros projectos j\u00e1 que normalmente esquecemo-nos ou enganamo-nos na path.E pronto est\u00e1 montada toda a estrutura para come\u00e7ar a utilizar o remote scripting. Parece um bocado complicado (eu tamb\u00e9m tentei esmiu\u00e7ar ao m\u00e1ximo todos os pontos que poder\u00e3o oferecer algumas d\u00favidas) mas, depois de utilizar uma ou duas vezes, esta parte deixa de oferecer qualquer problema.<br \/>\nChamar fun\u00e7\u00f5es remotas<br \/>\nComo se lembram temos um applet na nossa p\u00e1gina que vai servir de intermedi\u00e1rio entre a p\u00e1gina HTML e a p\u00e1gina ASP. A linha var aspObject = RSGetASPObject(&#8220;remote.asp&#8221;); da fun\u00e7\u00e3o funcao1 n\u00e3o faz mais do que criar uma refer\u00eancia \u00e0 p\u00e1gina ASP que queremos utilizar como &#8220;fornecedora&#8221; de fun\u00e7\u00f5es remotas. A partir da\u00ed podemos passar a chamar todas as fun\u00e7\u00f5es que est\u00e3o na p\u00e1gina ASP atrav\u00e9s desse objecto (aspObject). Na linha var a=aspObject.calcularSoma(1,2) estamos a chamar a fun\u00e7\u00e3o calcularSoma(a,b) que estava na p\u00e1gina ASP e a guardar o resultado dessa fun\u00e7\u00e3o numa outra vari\u00e1vel (a)O resultado que aspObject retorna \u00e9 uma simples string que cont\u00e9m XML. O facto de o resultado vir encapsulado em XML permite que strings, n\u00fameros e alguns objectos possam passar entre as p\u00e1ginas sem nenhum tipo de problema.Como j\u00e1 estar\u00e3o a adivinhar para determinar o resultado basta aceder \u00e0 propriedade return_value (a.return_value).No entanto em alguns casos \u00e9 importante ter mais informa\u00e7\u00e3o do que aquela que nos \u00e9 fornecida por return_value, como por exemplo quando ocorre algum erro e portanto o resultado enviado \u00e9 o objecto Error. Neste caso return_value iria entregar-nos algo como [Object] [object] o que n\u00e3o nos diz nada. Nestas alturas nada como recorrer \u00e0 propriedade data (no nosso caso a.data) para tentar perceber o que aconteceu.<br \/>\nOutras possibilidades<br \/>\nNeste artigo pretendi dar a conhecer o b\u00e1sico do remote scripting. Se tiverem curiosidade e pesquisarem a documenta\u00e7\u00e3o da Microsoft podem ver que h\u00e1 mais algumas coisas que se podem fazer (como <a href=\"http:\/\/msdn.microsoft.com\/scripting\/remotescripting\/docs\/rmscpt6.htm\"> chamadas ass\u00edncronas<\/a>), bem como formas diferentes de fazer os exemplos que dei. Nos pr\u00f3ximos artigos tentarei ir demonstrando mais algumas potencialidades desta tecnologia entretanto a minha sugest\u00e3o \u00e9 que experimentem o <u>exemplo<\/u> que apresentei neste artigo.<br \/>\n<strong>Newsgroups<\/strong><\/p>\n<p><a href=\"news:microsoft.public.scripting.remote\">microsoft.public.scripting.remote<\/a><\/p>\n<p><strong>Artigos<\/strong><\/p>\n<p><a href=\"http:\/\/www.asptoday.com\/content\/articles\/19990623.asp?WROXEMPTOKEN=2249506Z4nXEtWW0qm2QBfx8LS\">Putting Remote Scripting to Work<\/a><br \/>\n<a href=\"http:\/\/www-106.ibm.com\/developerworks\/library\/wa-resc\/?dwzone=web\">Remote scripting using a servlet : How to give Web applications interactivity and dynamism that you&#8217;d expect from desktop apps<br \/>\n<\/a><br \/>\n<a href=\"http:\/\/www.elementkjournals.com\/asp\/0005\/asp0051.htm\">Bridge the gap between client and server with remote scripting<\/a><br \/>\n<strong>Tecnologias relacionadas<\/strong><\/p>\n<p><a href=\"http:\/\/www.ashleyit.com\/rs\/rso\/\">RSO POST and Object Transfer Library<\/a><br \/>\n<strong>Bugs<\/strong><\/p>\n<p><a href=\"http:\/\/support.microsoft.com\/support\/kb\/articles\/Q284\/2\/80.ASP\">Q284280 -INFO: Netscape 6 and Remote Scripting<\/a><br \/>\n<a href=\"http:\/\/support.microsoft.com\/support\/kb\/articles\/Q238\/2\/84.ASP\">HOWTO: Display Error Messages From the Server When Remote Scripting<\/a><br \/>\n<a href=\"http:\/\/support.microsoft.com\/support\/kb\/articles\/Q259\/6\/49.ASP?LN=EN-US&amp;SD=msdn&amp;FR=0\">PRB: The Data Property of a Remote Scripting Object Is Empty with IIS 5.0 Server<\/a><br \/>\n<a href=\"http:\/\/support.microsoft.com\/support\/kb\/articles\/Q275\/4\/47.ASP?LN=EN-US&amp;SD=gn&amp;FR=0&amp;qry=rs.asp&amp;rnk=4&amp;src=DHCS_MSPSS_gn_SRCH&amp;SPR=MSALL\">PRB: ASP 0234 Error &#8220;Server side include directives may not be present in script blocks&#8221; with PageObject DTC<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Publicado originalmente em 21-mai-2001 Comecei a fazer este artigo tendo como objectivo explicar como ter 2 combos ligadas entre si sem ter necessidade de actualizar a p\u00e1gina de cada vez que se seleccionar uma op\u00e7\u00e3o (ver artigo de Jo\u00e3o Vieira &#8220;Uso de 2 Combos Ligadas Entre Si&#8220;). Como o remote scripting se trata de uma [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[7],"tags":[30,328,538,561],"class_list":["post-421","post","type-post","status-publish","format-standard","hentry","category-ler-ver-ouvir-passear","tag-ajax","tag-javascript","tag-programar","tag-remote-scripting"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.5 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Remote Scripting - Uma introdu\u00e7\u00e3o - Os Meus Apontamentos<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/osmeusapontamentos.com\/index.php\/2006\/03\/20\/remote-scripting-uma-introduo\/\" \/>\n<meta property=\"og:locale\" content=\"pt_PT\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Remote Scripting - Uma introdu\u00e7\u00e3o - Os Meus Apontamentos\" \/>\n<meta property=\"og:description\" content=\"Publicado originalmente em 21-mai-2001 Comecei a fazer este artigo tendo como objectivo explicar como ter 2 combos ligadas entre si sem ter necessidade de actualizar a p\u00e1gina de cada vez que se seleccionar uma op\u00e7\u00e3o (ver artigo de Jo\u00e3o Vieira &#8220;Uso de 2 Combos Ligadas Entre Si&#8220;). Como o remote scripting se trata de uma [&hellip;]\" \/>\n<meta property=\"og:url\" content=\"https:\/\/osmeusapontamentos.com\/index.php\/2006\/03\/20\/remote-scripting-uma-introduo\/\" \/>\n<meta property=\"og:site_name\" content=\"Os Meus Apontamentos\" \/>\n<meta property=\"article:published_time\" content=\"2006-03-20T23:27:46+00:00\" \/>\n<meta property=\"og:image\" content=\"http:\/\/msdn.microsoft.com\/library\/en-us\/dnclinic\/html\/scripting0499-1.gif\" \/>\n<meta name=\"author\" content=\"Vitor Silva\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@vitorsilva\" \/>\n<meta name=\"twitter:site\" content=\"@vitorsilva\" \/>\n<meta name=\"twitter:label1\" content=\"Escrito por\" \/>\n\t<meta name=\"twitter:data1\" content=\"Vitor Silva\" \/>\n\t<meta name=\"twitter:label2\" content=\"Tempo estimado de leitura\" \/>\n\t<meta name=\"twitter:data2\" content=\"7 minutos\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/osmeusapontamentos.com\\\/index.php\\\/2006\\\/03\\\/20\\\/remote-scripting-uma-introduo\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/osmeusapontamentos.com\\\/index.php\\\/2006\\\/03\\\/20\\\/remote-scripting-uma-introduo\\\/\"},\"author\":{\"name\":\"Vitor Silva\",\"@id\":\"https:\\\/\\\/osmeusapontamentos.com\\\/#\\\/schema\\\/person\\\/d508df9c3ffc8b4e64a18dbf0ba18dd8\"},\"headline\":\"Remote Scripting &#8211; Uma introdu\u00e7\u00e3o\",\"datePublished\":\"2006-03-20T23:27:46+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/osmeusapontamentos.com\\\/index.php\\\/2006\\\/03\\\/20\\\/remote-scripting-uma-introduo\\\/\"},\"wordCount\":1308,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\\\/\\\/osmeusapontamentos.com\\\/#\\\/schema\\\/person\\\/d508df9c3ffc8b4e64a18dbf0ba18dd8\"},\"image\":{\"@id\":\"https:\\\/\\\/osmeusapontamentos.com\\\/index.php\\\/2006\\\/03\\\/20\\\/remote-scripting-uma-introduo\\\/#primaryimage\"},\"thumbnailUrl\":\"http:\\\/\\\/msdn.microsoft.com\\\/library\\\/en-us\\\/dnclinic\\\/html\\\/scripting0499-1.gif\",\"keywords\":[\"ajax\",\"javascript\",\"programar\",\"remote scripting\"],\"articleSection\":[\"Ler\\\/ Ver\\\/ Ouvir\\\/ Passear\"],\"inLanguage\":\"pt-PT\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\\\/\\\/osmeusapontamentos.com\\\/index.php\\\/2006\\\/03\\\/20\\\/remote-scripting-uma-introduo\\\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/osmeusapontamentos.com\\\/index.php\\\/2006\\\/03\\\/20\\\/remote-scripting-uma-introduo\\\/\",\"url\":\"https:\\\/\\\/osmeusapontamentos.com\\\/index.php\\\/2006\\\/03\\\/20\\\/remote-scripting-uma-introduo\\\/\",\"name\":\"Remote Scripting - Uma introdu\u00e7\u00e3o - Os Meus Apontamentos\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/osmeusapontamentos.com\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/osmeusapontamentos.com\\\/index.php\\\/2006\\\/03\\\/20\\\/remote-scripting-uma-introduo\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/osmeusapontamentos.com\\\/index.php\\\/2006\\\/03\\\/20\\\/remote-scripting-uma-introduo\\\/#primaryimage\"},\"thumbnailUrl\":\"http:\\\/\\\/msdn.microsoft.com\\\/library\\\/en-us\\\/dnclinic\\\/html\\\/scripting0499-1.gif\",\"datePublished\":\"2006-03-20T23:27:46+00:00\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/osmeusapontamentos.com\\\/index.php\\\/2006\\\/03\\\/20\\\/remote-scripting-uma-introduo\\\/#breadcrumb\"},\"inLanguage\":\"pt-PT\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/osmeusapontamentos.com\\\/index.php\\\/2006\\\/03\\\/20\\\/remote-scripting-uma-introduo\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"pt-PT\",\"@id\":\"https:\\\/\\\/osmeusapontamentos.com\\\/index.php\\\/2006\\\/03\\\/20\\\/remote-scripting-uma-introduo\\\/#primaryimage\",\"url\":\"http:\\\/\\\/msdn.microsoft.com\\\/library\\\/en-us\\\/dnclinic\\\/html\\\/scripting0499-1.gif\",\"contentUrl\":\"http:\\\/\\\/msdn.microsoft.com\\\/library\\\/en-us\\\/dnclinic\\\/html\\\/scripting0499-1.gif\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/osmeusapontamentos.com\\\/index.php\\\/2006\\\/03\\\/20\\\/remote-scripting-uma-introduo\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"In\u00edcio\",\"item\":\"https:\\\/\\\/osmeusapontamentos.com\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Remote Scripting &#8211; Uma introdu\u00e7\u00e3o\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/osmeusapontamentos.com\\\/#website\",\"url\":\"https:\\\/\\\/osmeusapontamentos.com\\\/\",\"name\":\"Os Meus Apontamentos\",\"description\":\"\",\"publisher\":{\"@id\":\"https:\\\/\\\/osmeusapontamentos.com\\\/#\\\/schema\\\/person\\\/d508df9c3ffc8b4e64a18dbf0ba18dd8\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/osmeusapontamentos.com\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"pt-PT\"},{\"@type\":[\"Person\",\"Organization\"],\"@id\":\"https:\\\/\\\/osmeusapontamentos.com\\\/#\\\/schema\\\/person\\\/d508df9c3ffc8b4e64a18dbf0ba18dd8\",\"name\":\"Vitor Silva\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"pt-PT\",\"@id\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/f81f58ad909e8a213ab0a690f6ed65e5c0e0e2274bf35ac49ff31d7988d483ce?s=96&d=mm&r=g\",\"url\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/f81f58ad909e8a213ab0a690f6ed65e5c0e0e2274bf35ac49ff31d7988d483ce?s=96&d=mm&r=g\",\"contentUrl\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/f81f58ad909e8a213ab0a690f6ed65e5c0e0e2274bf35ac49ff31d7988d483ce?s=96&d=mm&r=g\",\"caption\":\"Vitor Silva\"},\"logo\":{\"@id\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/f81f58ad909e8a213ab0a690f6ed65e5c0e0e2274bf35ac49ff31d7988d483ce?s=96&d=mm&r=g\"},\"sameAs\":[\"https:\\\/\\\/www.linkedin.com\\\/in\\\/vitormrsilva\",\"https:\\\/\\\/x.com\\\/vitorsilva\"]}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Remote Scripting - Uma introdu\u00e7\u00e3o - Os Meus Apontamentos","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/osmeusapontamentos.com\/index.php\/2006\/03\/20\/remote-scripting-uma-introduo\/","og_locale":"pt_PT","og_type":"article","og_title":"Remote Scripting - Uma introdu\u00e7\u00e3o - Os Meus Apontamentos","og_description":"Publicado originalmente em 21-mai-2001 Comecei a fazer este artigo tendo como objectivo explicar como ter 2 combos ligadas entre si sem ter necessidade de actualizar a p\u00e1gina de cada vez que se seleccionar uma op\u00e7\u00e3o (ver artigo de Jo\u00e3o Vieira &#8220;Uso de 2 Combos Ligadas Entre Si&#8220;). Como o remote scripting se trata de uma [&hellip;]","og_url":"https:\/\/osmeusapontamentos.com\/index.php\/2006\/03\/20\/remote-scripting-uma-introduo\/","og_site_name":"Os Meus Apontamentos","article_published_time":"2006-03-20T23:27:46+00:00","og_image":[{"url":"http:\/\/msdn.microsoft.com\/library\/en-us\/dnclinic\/html\/scripting0499-1.gif","type":"","width":"","height":""}],"author":"Vitor Silva","twitter_card":"summary_large_image","twitter_creator":"@vitorsilva","twitter_site":"@vitorsilva","twitter_misc":{"Escrito por":"Vitor Silva","Tempo estimado de leitura":"7 minutos"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/osmeusapontamentos.com\/index.php\/2006\/03\/20\/remote-scripting-uma-introduo\/#article","isPartOf":{"@id":"https:\/\/osmeusapontamentos.com\/index.php\/2006\/03\/20\/remote-scripting-uma-introduo\/"},"author":{"name":"Vitor Silva","@id":"https:\/\/osmeusapontamentos.com\/#\/schema\/person\/d508df9c3ffc8b4e64a18dbf0ba18dd8"},"headline":"Remote Scripting &#8211; Uma introdu\u00e7\u00e3o","datePublished":"2006-03-20T23:27:46+00:00","mainEntityOfPage":{"@id":"https:\/\/osmeusapontamentos.com\/index.php\/2006\/03\/20\/remote-scripting-uma-introduo\/"},"wordCount":1308,"commentCount":0,"publisher":{"@id":"https:\/\/osmeusapontamentos.com\/#\/schema\/person\/d508df9c3ffc8b4e64a18dbf0ba18dd8"},"image":{"@id":"https:\/\/osmeusapontamentos.com\/index.php\/2006\/03\/20\/remote-scripting-uma-introduo\/#primaryimage"},"thumbnailUrl":"http:\/\/msdn.microsoft.com\/library\/en-us\/dnclinic\/html\/scripting0499-1.gif","keywords":["ajax","javascript","programar","remote scripting"],"articleSection":["Ler\/ Ver\/ Ouvir\/ Passear"],"inLanguage":"pt-PT","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/osmeusapontamentos.com\/index.php\/2006\/03\/20\/remote-scripting-uma-introduo\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/osmeusapontamentos.com\/index.php\/2006\/03\/20\/remote-scripting-uma-introduo\/","url":"https:\/\/osmeusapontamentos.com\/index.php\/2006\/03\/20\/remote-scripting-uma-introduo\/","name":"Remote Scripting - Uma introdu\u00e7\u00e3o - Os Meus Apontamentos","isPartOf":{"@id":"https:\/\/osmeusapontamentos.com\/#website"},"primaryImageOfPage":{"@id":"https:\/\/osmeusapontamentos.com\/index.php\/2006\/03\/20\/remote-scripting-uma-introduo\/#primaryimage"},"image":{"@id":"https:\/\/osmeusapontamentos.com\/index.php\/2006\/03\/20\/remote-scripting-uma-introduo\/#primaryimage"},"thumbnailUrl":"http:\/\/msdn.microsoft.com\/library\/en-us\/dnclinic\/html\/scripting0499-1.gif","datePublished":"2006-03-20T23:27:46+00:00","breadcrumb":{"@id":"https:\/\/osmeusapontamentos.com\/index.php\/2006\/03\/20\/remote-scripting-uma-introduo\/#breadcrumb"},"inLanguage":"pt-PT","potentialAction":[{"@type":"ReadAction","target":["https:\/\/osmeusapontamentos.com\/index.php\/2006\/03\/20\/remote-scripting-uma-introduo\/"]}]},{"@type":"ImageObject","inLanguage":"pt-PT","@id":"https:\/\/osmeusapontamentos.com\/index.php\/2006\/03\/20\/remote-scripting-uma-introduo\/#primaryimage","url":"http:\/\/msdn.microsoft.com\/library\/en-us\/dnclinic\/html\/scripting0499-1.gif","contentUrl":"http:\/\/msdn.microsoft.com\/library\/en-us\/dnclinic\/html\/scripting0499-1.gif"},{"@type":"BreadcrumbList","@id":"https:\/\/osmeusapontamentos.com\/index.php\/2006\/03\/20\/remote-scripting-uma-introduo\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"In\u00edcio","item":"https:\/\/osmeusapontamentos.com\/"},{"@type":"ListItem","position":2,"name":"Remote Scripting &#8211; Uma introdu\u00e7\u00e3o"}]},{"@type":"WebSite","@id":"https:\/\/osmeusapontamentos.com\/#website","url":"https:\/\/osmeusapontamentos.com\/","name":"Os Meus Apontamentos","description":"","publisher":{"@id":"https:\/\/osmeusapontamentos.com\/#\/schema\/person\/d508df9c3ffc8b4e64a18dbf0ba18dd8"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/osmeusapontamentos.com\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"pt-PT"},{"@type":["Person","Organization"],"@id":"https:\/\/osmeusapontamentos.com\/#\/schema\/person\/d508df9c3ffc8b4e64a18dbf0ba18dd8","name":"Vitor Silva","image":{"@type":"ImageObject","inLanguage":"pt-PT","@id":"https:\/\/secure.gravatar.com\/avatar\/f81f58ad909e8a213ab0a690f6ed65e5c0e0e2274bf35ac49ff31d7988d483ce?s=96&d=mm&r=g","url":"https:\/\/secure.gravatar.com\/avatar\/f81f58ad909e8a213ab0a690f6ed65e5c0e0e2274bf35ac49ff31d7988d483ce?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/f81f58ad909e8a213ab0a690f6ed65e5c0e0e2274bf35ac49ff31d7988d483ce?s=96&d=mm&r=g","caption":"Vitor Silva"},"logo":{"@id":"https:\/\/secure.gravatar.com\/avatar\/f81f58ad909e8a213ab0a690f6ed65e5c0e0e2274bf35ac49ff31d7988d483ce?s=96&d=mm&r=g"},"sameAs":["https:\/\/www.linkedin.com\/in\/vitormrsilva","https:\/\/x.com\/vitorsilva"]}]}},"_links":{"self":[{"href":"https:\/\/osmeusapontamentos.com\/index.php\/wp-json\/wp\/v2\/posts\/421","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/osmeusapontamentos.com\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/osmeusapontamentos.com\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/osmeusapontamentos.com\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/osmeusapontamentos.com\/index.php\/wp-json\/wp\/v2\/comments?post=421"}],"version-history":[{"count":0,"href":"https:\/\/osmeusapontamentos.com\/index.php\/wp-json\/wp\/v2\/posts\/421\/revisions"}],"wp:attachment":[{"href":"https:\/\/osmeusapontamentos.com\/index.php\/wp-json\/wp\/v2\/media?parent=421"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/osmeusapontamentos.com\/index.php\/wp-json\/wp\/v2\/categories?post=421"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/osmeusapontamentos.com\/index.php\/wp-json\/wp\/v2\/tags?post=421"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}