Tunneling och proxyservrar för Ajax och utanför

Måndagen den 10 december 2007

På grund av sin förmåga att kommunicera med servern, den XMLHttpRequest objekt (XHR), som används i tekniken Ajax (kort för Asynchronous JavaScript och XML, vars uttal skulle vara "egiacs" även om vi italienare föredrar "aiacs"), har ett block av skydd som hindrar honom från program som körs utanför det område där den är verksam. Detta skydd är nödvändiga för att förhindra JavaScript-injektion (tekniker för "injektion" extremt farlig kod för att bryta mot systemet) av varierande slag, med det slutliga målet att "bryta" i systemet.
Denna gräns är nu tas på allvar och tänker på något sätt att lösa det - direkt i XMLHttpRequest - utan att äventyra säkerheten (se även: Tredje förslaget till cross-site tillägg till XMLHttpRequest).

Trots det är situationen i dag är följande:

XHR

Fortsätt att läsa ... "

Liknande Post

Fullscreen Flash webbläsare

Tisdagen den 30 oktober, 2007

Flash har alltid stött helskärmsläge (Fullscreen) eller fristående spelare som i projektorn. Denna funktion är fortfarande fullt stöd och har inte förändrats. Adobe har nyligen infört möjligheten att aktivera filmer i helskärmsläge direkt visas i webbläsaren. Det var ett nytt och enkelt ActionScript funktion som fungerar både med fristående aktör att spelaren webbläsare. Att göra helskärmsläge fuzionante måste också fungera sida HTML, lägga till en ny parameter allowFullScreen i TAG <object> och <embed> Allt annat är kvar på motorn inre Flash.
Den här nya funktionen har vissa begränsningar som vi behöver veta, först och främst användning av Flash Player version 9.0.28.0 eller högre. Dessutom sammanfattning:

  • Webbläsare måste vara installerat på den version av Player 9.0.28.0 eller högre
  • Exploatören måste lägga till en ny parameter allowFullScreen i Tag <object> och <embed> Denna parameter är normalt false på falska och inte gör det möjligt helskärm. Att göra det möjligt för helskärm måste uttryckligen true att den ska sant.
  • En dialogruta visas när du deltar i helskärmsläge och hur du får ut av den här funktionen. Denna ruta kommer att visas under några sekunder, som antogs av bara försvinna.
  • Aktivering av helskärmsläge ActionScript kan göras bara som svar på ett klick med musen eller genom att trycka på en knapp, något annat sätt kommer att ignoreras i ActionScript 2.0 och scatenera ett undantag throw i ActionScript 3.0.
  • Under helskärmsläge kan du inte använda tangentbordet. Det går inte att infoga eller ändra texter. Det enda svaret på tangentbordet är reserverat för den tangentkombination som används för att stänga helskärmsläge (pressen ESC

ActionScript-kod

Den kod som behövs för att ställa in helskärm är enkla och drar nytta föremål Stage diskuteras i denna blogg StageExt klass: resizable filmer i Flash:

ActionScript:
  1. "displayState" ] = "fullScreen" ; Skede [ "displayState"] = "Fullskärm";

Fortsätt läsa ... "

Liknande Post

Noterna provning och felsökning i Adobe Flash

Torsdagen den 11 oktober, 2007

En övervägande, men uppenbarligen underskattat under utvecklingen av tillämpningar inom Adobe Flash: skillnaden mellan Player används för att testa insidan av din Flash och föremål (eller ActiveX EMBED) används av våra läsare. Vem äger "Macromedia" Flash MX (version 8 till exempel, men detta tal egentligen går för någon version av Flash ...) när de utvecklar en film och insidan av din Testet skickar Flash Player kör knutna till utvecklingen paket. När du publicera din film på nätet och kommer att "test" med Flash Player webbläsare kan du uppleva en del - stora - skillnader!

bildbild

Fortsätt läsa ... "

Liknande Post

Diskreta Flash-objekt

Tisdagen den 10 april, 2007

Införandet av objekt (inklusive Flash-objekt) inom webbsidor på sistone har blivit ett ofta stressigt. I andra inlägg har redan tagit upp frågan om hur man kan upptäcka Flash och sätt in det i sidor på rätt sätt. Som vi pratade diskret teknik, vi påpeka två välkända skript kan identifiera (och eventuellt installera) och infoga Flash-objekt på en sida, så mycket lite påträngande och afficiente: SWFObject och UFO.
Både manus erbjuda i stort sett samma funktioner identiska. Metoden går ut på att ersätta det med ett Javascript TAG med Flash-innehåll. Vi vet att denna process eliminerar problemet med aktivering av Flash som genom Internet Explorer, dock innebär att Javascript är aktiverat i målgruppen webbläsare.
Både manus inte använda sig av externa bibliotek som Prototype.js till exempel. Den viktigaste skillnaden mellan de två är att SWFObject kallas när TAG vara replaced've hämtat sidan, inte precis diskreta sätt. Här är ett utdrag av kod som visar sekvens av samtal:

HTML:
  1. > <div id = "flashcontent">
  2. <strong> Du måste uppgradera din Flash Player </ strong>
  3. Detta skall ersättas med Flash-innehåll.
  4. Placera dina alternativt innehåll här och användare utan Flash plugin eller med
  5. Javascript stängs av kommer att se det här. Innehållet här kan du utelämna <code> noscript </ code>
  6. taggar. > bypass the detection </a> if you wish. Ta med en länk till <a href = "swfobject.html?detectflash=false"> kringgå upptäckt </ a> om du vill.
  7. </ Div>
  8. > <script type = "text/javascript">
  9. / / <[CDATA [
  10. , "sotester" , "300" , "300" , "9" , "#FF6600" ) ; var så = new SWFObject ( "so_tester.swf", "sotester", "300", "300", "9", "# FF6600");
  11. , "this is passed in via FlashVars for example only" ) ; // this line is optional, but this example uses the variable and displays this text inside the flash movie so.addVariable ( "flashVarText", "detta är passerade in via FlashVars till exempel bara") / / detta är frivilligt, men det här exemplet använder den rörliga och visar texten inne i Flash-animering
  12. ) ; so.write ( "flashcontent");
  13. / /]]>
  14. </ Script>

UFO, dock kan un'approccio mycket i linje med den klassiska skript diskreta. Att ersätta TAG läge ske på ett öppet, utan abbligare lastning sekvenser, som visas i exemplet nedan:

HTML:
  1. <title> diskreta Flash-objekt (UFO) | Provkod sida </ title>
  2. content = "text/html; charset=iso-8859-1" / > <meta http-equiv = "Content-Type" innehåll = "text/html; charset=iso-8859-1" />
  3. src = "ufo.js" > </script> <script type = "text/javascript" src = "ufo.js"> </ script>
  4. > <script type = "text/javascript">
  5. var FÖR = (filmen: "test8.swf", bredd: "300" height "120", MajorVersion: "12", bygga: "0" xi "true");
  6. UFO.create (TILL, "ufoDemo");
  7. </ Script>
  8. </ Head>
  9. > <div id = "ufoDemo">
  10. <p> ersätter innehåll </ p>
  11. > <img src = "http://www.macromedia.com/images/shared/download_buttons/get_flash_player.gif" alt = "Get macromedia Flash Player" style = "border: none;" / > </a> </p> <p> <a href = "http://www.macromedia.com/go/getflashplayer"> <img src = "http://www.macromedia.com/images/shared/download_buttons/get_flash_player.gif" alt = "Get Macromedia Flash Player" style = "border: none;" /> </ a> </ p>
  12. </ Div>
  13. </ Body>

I källkoden skript UFO i själva verket du märker omedelbart använda - bättre - en händelse som fokuserade den fullständiga lastning av sidan innan du byter, sedan strategi mer i en mycket icke-störande script.

Liknande Post

Om Javascript vinner

Lördag, 17 mars, 2007

Besluta vilken teknik de vill använda för att utveckla en webbapplikation som är av avgörande betydelse, inte att finna sig själv i knipa strax efter. Den typ av webbapplikationer, dess operativa egenskaper, är den första punkten att överväga för att välja Framework och relaterad teknik.
Jag har ofta diskuterat hur effektiva Javascript skript mot olika tekniker som Adobe Flash eller Java. Men det är bra att betona en viktig aspekt som ofta förbises: tillgång till DOM. Javascript, i detta fall skall den sökande (om inte den enda) favorit för denna typ av operation.

Verktyg med Snap, till exempel, verkar på en enkel mekanism: när HTML-sidan är laddad (och efter att lastningen av skript Javascript) driver en genomsökning av HTML-sidan och lagt till en ny kod punkter. När det gäller Snap identifierats är alla länkar till externa sidor (eller i den inre konstruktionen av frågan), den TAG <A> för indenderci. Dessa är modifierade så att när du flyttar musen öppnar ett fönster för anterpima länk (se den här bloggen till exempel).

Inte bara knäpp, men många andra skript Javascript är ungefär samma sak. Nyligen, denna teknik har en omfattande spridning via bibliotekets prototyp, som ger en hel rad olika metoder (t.ex. den berömda dubbel-o $ $ $ US-dollar - se Prototype: Användningen av dubbla dollartecken ($ $)) och för att spåra att ändra - i farten - de delar av en HTML-sida.

Flyttar inom HTML DOM är specifika för Javascript. Historiskt sett har bland annat Javascript infördes bara att läsa och skriva innehållet i en HTML-sida.
Till exempel, om vi ville göra några ändringar i en HTML-sida med hjälp av Adobe Flash, vi aggorgeremmo - eller förr eller senare - att vara tvungen att åberopa en JavaScript-funktion. Den nya ActionScript 3.0, till exempel, erbjuder en klass (ExternalInterface) som är lämpliga för detta ändamål. En gång (i tidigare versioner av ActionScript) är ett kommando som används getURL() som nu har ersatts av bättre flash.net.navigateToURL() eller fscommad() ett JavaScript-funktion:

ActionScript:
  1. "javascript:miaFunzione()" ) ; getUrl ( "javascript: myFunction ());

Också:

Den ExternalInterface klass är de yttre API, Application Programming Interface som gör det möjligt för enkel kommunikation mellan ActionScript och Flash Player behållare, till exempel en HTML-sida med JavaScript eller en-programmet på datorn med inbyggda Flash Player.

Observera att "datorprogram" som både påminner om Apollo!

I dag, tack vare ExternalInterface kan du åberopa en JavaScript-funktion på ett sätt som åtminstone renare (denna klass kan förvaltningen signifikant mer effektiv än getURL() såsom passage av parametrar):

ActionScript:
  1. / * Samtal de yttre funktion "addNumbers"
  2. passerar två parametrar, och tilldela denna funktion resultat
  3. till variabeln "träff" * /
  4. ; var param1: UINT = 3;
  5. ; var param2: UINT = 7;
  6. ( "addNumbers" , param1, param2 ) ; var resultatet: UINT = ExternalInterface. samtal ( "addNumbers", param1, param2);

JavaScript:
  1. <script> <--
  2. / / Lägger till två nummer, och skickar tillbaka resultatet till ActionScript
  3. num1, num2 ) { addNumbers funktion (num1, num2) (
  4. num1 + num2 ) ; avkastning (num1 + num2);
  5. )
  6. / / --></ Script>

Vad kan vi sluta då? Av alla olika ramar och bibliotek tillgängliga första analys av projektet som du vill uppnå är av största vikt. Err detta skede kan allvarligt påverka de senare faserna i ett projekt web2.0. Javascript, och sedan vinner på alla när du måste interagera med DOM.

Liknande Post