Чтение данных из JavaScript обновлен HTML - PullRequest
2 голосов
/ 05 октября 2009

Можно ли читать обновленные цитаты в реальном времени на на этом сайте с помощью actionscript3, без необходимости постоянно перезагружать страницу, что будет загружать сеть.

Другими словами, возможно ли передавать данные цитаты непосредственно в actionscript3 или, в конечном итоге, в PHP из javascript?

Если нет, то есть ли у кого-нибудь предложения, как включить эти цитаты в ActionScript?

Ответы [ 2 ]

2 голосов
/ 06 октября 2009

Расширение того, что сказал Тео ... (Я уверен, что есть намного более изящный способ сделать это, и я буду осужден как хак, но это работает, черт возьми)

По сути, я просто извлекаю первые два числа под EUR / USD красным цветом.

Вот скрипт php для установки на ваш сервер, который называется getContent.php

<?php

$handle = fopen("getVars.php", "r");

$contents = '';
    while (!feof($handle)) {
     $contents .= fread($handle, 8192);
}

$vars = explode("&",  $contents);
$time = substr($vars[2], 5);
$difference = abs(date(s)-$time);

if($difference>5)
{

    $handle = fopen("http://www.fxstreet.com/technical/currencies-glance/pair.aspx?id=EUR/USD", "r");

    $contents = '';
        while (!feof($handle)) {
         $contents .= fread($handle, 8192);
    }

    $contents=trim($contents);
    $pos1 = strpos($contents, 'lhtml_0" innerOnUpdate="att=BID" innerfilter="format_number">');
    $str1 = substr($contents, $pos1, 100);
    $cur1 =  substr($str1, 61, 6); 
    $pos2 = strpos($contents, 'lhtml_1" innerOnUpdate="att=ASK" innerfilter="format_number">');
    $str2 = substr($contents, $pos2, 100);
    $cur2 = substr($str2, 61, 6); 

    $cachedPage = fopen("getVars.php", "w");
    $varString = "cur1=$cur1&cur2=$cur2&time=".date(s);
    fwrite($cachedPage,$varString);
    fclose($cachedPage);
    echo "cur1=$cur1&cur2=$cur2&cached=false";
}
else
{
    $handle = fopen("getVars.php", "r");

    $contents = '';
        while (!feof($handle)) {
         $contents .= fread($handle, 8192);
    }

    echo $contents."&cached=true";
}

fclose($handle);
?>

А потом скрипт действий

var updateTimer:Timer = new Timer(5000);
updateTimer.addEventListener(TimerEvent.TIMER, getQuotes);
updateTimer.start();
function getQuotes(e:Event):void
{
    var request:URLRequest = new URLRequest ("getContent.php");     
    var loader:URLLoader = new URLLoader (request);
    loader.addEventListener(Event.COMPLETE, onComplete);
    loader.dataFormat = URLLoaderDataFormat.VARIABLES;
    loader.load(request);
}

function onComplete (event:Event):void
{
   var variables:URLVariables = new URLVariables( event.target.data );
   currency1.text = variables.cur1;
   currency2.text = variables.cur2;
}
var e:Event;
getQuotes(e);

Вы можете увидеть это в действии здесь ... http://www.hupcapstudios.com/getCurrency.swf

Часть хака была моим разбором страницы в php. Я должен был сделать несколько серьезных действий с подстрокой. Я уверен, что любой, кто имеет приличную способность разбора, может написать более понятный код для извлечения всех необходимых вам данных.

Я просто подумала, что мне это удастся. Удачи :)

1 голос
/ 06 октября 2009

возможно, создайте серверный скрипт, проверяющий содержимое сайта каждые 5 секунд или около того. Сценарий может проанализировать «кешированную» версию «цитаты», которую вы хотите получить. Затем просто запросите этот кэшированный контент с помощью URLRequests через короткие промежутки времени из вашего приложения Flash.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...