Det här är förmodligen en av de mest spännande saker jag har kommit på med sedan jag började leka med JavaScript. Om du någonsin har skrivit ett något komplicerat JS-fragment kan du ha märkt att långsammare datorer webbläsare (som FF2 på Mac) kommer att frysa om du kör igenom en stor slinga som gör några tunga operationer (händelsebindningar, dom manipuleringar etc.). För mig hos en användare har det alltid varit väldigt irriterande eftersom det bara kommer in i ditt arbetsflöde och om du blir otur kan det kanske krascha din webbläsare. Hittills tyckte jag att det enda sättet att undvika detta var att helt enkelt skriva mindre intensiv JavaScript och optimera helvetet ut ur det. Men med de senaste uppgraderingarna som kommer till PostTask har vi nått den punkt där vi ofta behöver binda upp till 300 händelser () på sidladdning och utföra en hel massa andra aktiviteter. Det kom till den punkt där lastning av sidan skulle frysa FF2 på mac för en galen 16 sekunder - absolut oacceptabel av någon standard. Det här inlägget handlar om hur ett enkelt trick minskar initialiseringstiden ner till 5 sekunder samtidigt som man undviker att någon webbläsare fryser på samma gång. Den stora hemligheten - Använda JavaScript för att partitionera arbetsbelastningen Det viktigaste problemet jag identifierade som är ansvarig för webbläsaren frysning är att JavaScript körs i en enda tråd. Det betyder att medan någon JS-kod körs, kan ingen annan kod köra samtidigt. Från mina gamla VB-dagar kom jag ihåg att det brukade vara en funktion som heter doEvents () som du kan lägga i stora loopar för att hålla dina appar från frysning. Vad det gjorde var i huvudsak att se om det fanns någon annan kod som behövde springa, köra den och sedan gå tillbaka till din slinga. JavaScript har inte en sådan funktion, men något som kommer mycket nära - timers. John gjorde nyligen ett bra inlägg om dem som bekräftade mitt tidigare experiment med dem: Om du ställer in ett intervall eller timeout av kan vi säga 50ms i JavaScript finns det ingen garanti för när händelsen kommer att skjuta. Det enda JS lovar dig är att inte skjuta händelsen innan 50ms är över. Annars då försöker det bara att utföra evenemanget ASAP. Det betyder att om det finns någon JS-kod som för närvarande körs, kommer ingen händelse att skjuta tills koden av koden har slutförts. Det betyder också att flera händelser (intervalltidsavbrott osv. Uppringningar) kan köa upp över ett tag och sedan elda tillbaka till baksidan. Vad som verkar som ett mycket irriterande problem som du måste arbeta om du vill göra kan säga smidiga animationer visar sig att detta också öppnar en bred serie möjligheter att skriva asynkron kod i JS. Och med asynkron menar jag kod som inte kommer att utföras som en del av ditt normala programflöde, men när det är lämpligt för JS, kan webbläsaren utföra den. Du kanske redan har kommit till slutsatsen som jag gjorde för en stund sedan: Det här är en perfekt mekanism för att dela upp en stor operation upp i mindre bitar som webbläsaren kan bearbeta när den är bekväm och inte kommer att orsaka någon frysning. Det här fungerar alltid bäst om du lämnar något utrymme att andas för webbläsaren mellan körning av kodbitar (1-5m är vanligtvis nog). Här är en kod som kan uppnå detta på ett lättanvänt sätt:. kö 123 timer: null, kö: 91 93, lägg till: funktion 40 fn, sammanhang, tid 41 123 var inställdTimerfunktion 40 tid 41 123. kö. timer setTimeout 40 funktion 40 41 123 time. kö. lägg till 40 41 om 40. kö. längd 41 123 setTimer 40 tid 41 125 125. tid 2 41 125 om 40 fn 41 123. kö. tryck 40 91 fn, sammanhang, tid 93 41 om 40. kö. längd 1 41 123 setTimer 40 gång 41 125 retur 125 var nästa. kö. skift 40 41 om 40 nästa 41 123 återvända 0 125 nästa 91 0 93. ring 40 nästa 91 1 93 fönster 41 returnera nästa 91 2 93 125, klart: funktion 40 41 123 clearTimeout 40. kö. timer 41. kö. queue 91 93 125 125 Sena händelsebindning En av de saker vi använder detta för i PostTask är vad jag kallar sen händelsebindande. Låt oss säga att du har följande kod: (Obs! Det här kan förenklas mycket, men det här är lättare att förstå hur refactoring fungerar) 40 dokument 41. redo 40 funktion 40 41 123 mycket lis, låt säga 500 40 li 41. Varje 40-funktion 40 41 123 40 Denna 41. Bind 40 Klicka. funktion 40 41 123 alert 40 Ja du klickade på mig 41 125 41 125 41 125 41 Du kommer nog att märka att det redan har en märkbar inverkan på sidans initialiseringstid medan du fryser webbläsaren under den. För att undvika det kan det vara så enkelt som: 40 dokument 41. redo 40 funktion 40 41 123 mycket lis, låt säga 500 40 li 41. var 40-funktion 40 41 123 var själv här. doBind-funktion 40 41 123 40 själv 41. bind 40 Klicka. funktion 40 41 123 alert 40 Ja du klickade på mig 41 125 41 125. kö. lägg till 40 doBind, detta 41 125 41 125 41 Detta bör minimera sidans initialiseringstid ner till nästan dess icke-JS-hastighet samtidigt som händelserna bindas i tid. I huvudsak istället för att binda händelsen direkt med dokumentets färdiga uppfinningar, inkapslar du bara varje bindning i sin egen stängning som du lägger till i en kö för senare körning. Det betyder att användaren kommer att se sidan mycket snabbt medan i bakgrunden var 2ms blir ett nytt li-element gjort sin bindning klar. Självklart kan användaren nu göra något väldigt irriterande och klicka på ett element innan dess bindningsförslutningar som kan skruva upp saker. Detta är dock mycket osannolikt. För en måste användaren vara väldigt snabb, för helvetet måste klicka på Neat. Jag har använt ExtJS för att utveckla min webbapp och har inte stött på det här problemet (ännu) eller till och med övervägt om det fanns en DoEvents som att ringa till js. Jag undrar om denna strategi enkelt kan implementeras i ExtJS. när jag behöver det, kommer jag att knacka) För någon av er stannar fortfarande på dagen som jag själv, för intensiva loopar i VB, ring DoEvents och sömn API-samtalet (noll ms är tillräckligt) för att verkligen ge bearbetning. Annars kommer CPU-enheten att hålla fast under slingan. Bra artikel Felix Im tucking bort detta för en regnig dag säkert. Im med Atanas om hantering av händelsebindning till föräldern ul snarare än de enskilda barnen, men självklart är alla händelser bindande inte alltid denna rena skära. Ska linje 6 i din första kod läsa:.queue. timer setTimeout (funktion () Jag tror att logiken är lite knepig och kan använda några kommentarer. Javascript är som ett skämt. Det ger fel mycket tid. De är alla baserade på webbläsarkompatibilitet. Varför programutvecklarna slutar slå sig och utveckla en vanlig webbläsare Peter: Jag fixade det, tack för att du upptäckte det. Beklagar koden, det här menas som en PoC och jag vill göra några ändringar i den innan du lägger ut en frisläppande version. Forex: Nej, försök att öka din PR med en länk utan länk är ett skämt). Du bör tänka på en karriärväxel - varken JS eller spamming verkar vara något du är bra på. Håll en uppfattning om US-dollarn Handel det FXCM En ledande Forex Broker Vad är Forex Forex är marknaden där alla världens valutor handlar. Forexmarknaden är den största och mest likvida marknaden i världen med en genomsnittlig daglig volym som överstiger 5,3 biljoner. Det finns ingen central utbyte när den handlar i disken. Forex trading tillåter dig att köpa och sälja valutor, liknande aktiehandel, förutom att du kan göra det 24 timmar om dygnet, fem dagar i veckan, du har tillgång till marginhandel och du får exponering för internationella marknader. FXCM är en ledande valutahandel. Rättvis och genomskinlig genomförande Sedan 1999 har FXCM utsett att skapa den bästa onlineexportexportupplevelsen på marknaden. Vi ledde fram till exemplet No Dealing Desk forex-exekveringsmodellen, vilket ger konkurrenskraftigt och transparent genomförande för våra handlare. Prisvärd kundservice Med högkvalitativ handelsutbildning och kraftfulla verktyg guidar vi tusentals handlare via valutamarknaden med 247 kundservice. Upptäck FXCM-fördelen. Genomsnittliga spridningar: Tidvägda genomsnittliga spridningar härrör från omsättningsbara priser vid FXCM från 1 oktober 2016 till 31 december 2016. Spridningsuppgifterna är endast avsedda för informationsändamål. FXCM är inte ansvarig för fel, försummelser eller förseningar eller för åtgärder som bygger på denna information. Live Spreads Widget: Dynamiska live spreads är de bästa tillgängliga priserna från FXCMs No Dealing Desk exekvering. När statiska spridningar visas, är siffrorna tidvägda medelvärden härrörande från omsättningsbara priser vid FXCM från 1 oktober 2016 till 31 december 2016. Spridningar som visas är tillgängliga på provisioner med standard och aktiv handel. Spreads är variabla och är föremål för förseningar. Spridningsfigurerna är endast avsedda för informationsändamål. FXCM är inte ansvarig för fel, försummelser eller förseningar eller för åtgärder som bygger på denna information. Mini-konton: Mini-konton erbjuder 21 valutapar och är standard för att utföra Desk-utförande där prissättningsstrategier är förbjudna. FXCM bestämmer, efter eget gottfinnande, vad som omfattar en prisarbitrage strategi. Mini-konton erbjuder spreads plus mark-up prissättning. Spreads är variabla och är föremål för förseningar. Mini-konton som använder förbjudna strategier eller med eget kapital som överstiger 20 000 CCY kan bytas till Exekveringsdebit. Se Utföringsrisker. Kundservice Lanseringsprogram Populära plattformar Om FXCM Forex-konton Fler resurser Hög risk investeringsvarning: Handel med utländsk valuta och kontrakter om skillnader i marginal medför hög risk och kan inte vara lämpliga för alla investerare. Möjligheten finns att du kan behålla en förlust som överstiger dina deponerade medel och därför bör du inte spekulera med kapital som du inte har råd att förlora. Innan du bestämmer dig för handeln med de produkter som FXCM erbjuder, bör du noggrant överväga dina mål, ekonomiska situation, behov och erfarenhetsnivå. Du bör vara medveten om alla risker som är förknippade med handel med marginaler. FXCM ger generell rådgivning som inte tar hänsyn till dina mål, ekonomiska situation eller behov. Innehållet på denna webbplats kan inte tolkas som personlig rådgivning. FXCM rekommenderar dig att söka råd från en separat finansiell rådgivare. Vänligen klicka här för att läsa fullständig riskvarning. FXCM är en registrerad handels - och detaljhandelsförhandlare för Futures Commission med Commodity Futures Trading Commission och är medlem i National Futures Association. NFA 0308179 Forex Capital Markets, LLC (FXCM LLC) är ett verksamhetsdotterbolag inom FXCM-koncernen (gemensamt FXCM-koncernen). Alla referenser på denna sida till FXCM hänvisar till FXCM-gruppen. Observera att informationen på den här webbplatsen endast är avsedd för privatkunder och vissa representationer häri kan inte vara tillämpliga på stödberättigade kontraktsdeltagare (dvs. institutionella kunder) enligt definitionen i råvaruutbyteslagen sekt 1 (a) (12). Copyright kopia 2017 Forex Capital Markets. Alla rättigheter förbehållna. 55 Water St. 50th Floor, New York, NY 10041 USA Välkommen till Forex Masters webbplats och till en av de mest spännande möjligheterna till företagare i världen: FOREX TRADING Introduktion till Forex Trading Foreign Exchange är samtidig inköp av en valuta och försäljning av annan. Med andra ord byts valutaen i ett land för en annan. Valutorna i världen har en flytande växelkurs, och handlas alltid i par - EuroDollar, DollarYen, etc. Över 85 procent av alla dagliga transaktioner innebär handel med de stora valutorna - Amerikanska dollar, Brittiska pund, Euro, Schweiziska franc, japanska yenen, kanadensiska dollar och australiensiska dollar. Valutamarknaden (FOREX) är den största och mest likvida finansiella marknaden i världen med en daglig omsättning på drygt 5 biljoner, vilket är mer än tre gånger det sammanlagda beloppet för de amerikanska aktiemarknads - och finansmarknaderna. har tilldelats Best Forex Training RampD Company Sydafrika för 2016 Corporate Vision Magazine, Storbritannien Bank of International Settlements (BIS). Forex valutamarknaden handlar cirka 5 biljoner per dag. gör den till den största och mest likvida marknaden Bank of International Settlements Jämfört med valutamarknaden är valutamarknaden bara en procent av valutamarknaden. Till skillnad från andra finansiella marknader som futures och börser har Forex-marknaden ingen fysisk plats och ingen central utbyte. Det verkar via ett elektroniskt nätverk av banker, företag och individer (kallad interbank) handel med en valuta för en annan. Denna brist på fysisk utbyte gör det möjligt för Forex-marknaden att fungera dygnet runt, från en tidszon till nästa, över varje av världens stora finansiella centra varje dag. Handel flyttar från stora banker i USA till Australien och Nya Zeeland, till Fjärran Östern, till Europa och äntligen tillbaka till USA. Tidigare var Forex Interbank Market inte tillgänglig för små spekulanter på grund av de stora minsta transaktionsstorlekarna och ofta stränga finansiella krav. Banker, stora valutahandlare och den enstaka stora spekulanten brukade vara huvudhandlarna. Bara de kunde dra nytta av valutamarknaden39s fantastiska likviditet och starka tendenser i många av världens primära valutakurser. Idag kan valutamarknadsmäklare mäta de större mellanklassenheterna och erbjuda småhandlare möjlighet att köpa eller sälja några av dessa mindre enheter (partier). Dessa mäklare ger praktiskt taget alla storlekar, inklusive enskilda spekulanter eller mindre företag, möjligheten att handla samma priser och prisrörelser som de stora aktörerna som en gång dominerade marknaden. Marknadsförare citerar köp - och säljkurser för valutor, och de tjänar på skillnaden mellan sina köp - och försäljningspriser. På grund av sin höga likviditet och volatilitet erbjuder Forex Market många fördelar jämfört med andra marknader. Se riskanmälan nedan. På grund av sin rena storlek, likviditet och hastighet. även små svängningar på valutamarknaden kan leda till svindlande vinster. Se riskanmälan nedan. Låt mig upprepa det, för det är väldigt viktigt: Forex-marknaden är så stor - och så flytande - även små, nästan omärkliga rörelser kan resultera i miljoner dollar vinster, bokstavligen över natten. Heres ett exempel på vad jag talar om: Back in 1991 gjorde George Soros 1 miljard på en dag som handlar det brittiska pundet Nu, det låter otroligt, det gör det inte En fantastisk summa pengar att göra på en enda dag. Men här är saken: 1 miljarder dollar är bara 0,03 av DAILY FOREX VOLUME. Det är mindre än en tiondel av en procent. Det är inget. en droppe i skopan Men de flesta antar att Soros ska göra sin miljarder dollar förmögenhet, marknaden måste flytta i stora språng och gränser. Men det gjorde det inte. Hans förmögenhet skapades på ett litet drag Jämför den typen av rörelse med de aktier du äger. Skulle en .03 uptick i priset på dina aktier göra dig miljonär Att ignorera valutamarknaden innebär att pengar sitter på bordet. Det är ett stort misstag. Sanningen är, Forex marknaden är så stor att det är lätt för svindlande summor pengar att gå vilse i sprickorna. bara för att bli upptagen av kunniga individer som förstår hur spelet spelas. förändra ditt liv. Kampanjer: Forex Trading
No comments:
Post a Comment