Versio

Externe URL's aanroepen zonder vertraging

Overzicht Reageren

- Aar -

- Aar -

28/12/2011 10:45:38
Quote Anchor link
Ok, de titel is misschien wat vaag, maar ik zit met de volgende vraagstelling cq. probleem:

Inleiding
Ik heb een Adminbackend waar ik mijn nieuws in schrijf. Bij het submitten van een nieuwsbericht roep ik ook de Twitter en Bit.ly API's aan zodat mijn nieuwsbericht ook op Twitter komt, en dat de URL afgekort wordt door Bit.ly.

Het probleem
Nu merk ik op dat er regelmatig duidelijk vertraging optreedt als ik een nieuwsbericht verstuur. De services van Twitter en Bit.ly reageren dan behoorlijk traag.

Hoe zou ik dit aan kunnen pakken? Ik kan wel een cronjob gebruiken, maar dit is voor een algemeen CMS die ik haast zonder crons wil kunnen laten draaien, en ik zat te denken aan iets met AJAX. Ik kan dan natuurlijk hij het submitten de gegevens van het nieuwsbericht (titel, ID) in een buffer-tabel opslaan. En op de achtergrond in mijn CMS dan na het submitten de tabel uitlezen en de API's ermee aanroepen om ze op Twitter te plaatsen.

Maar hoe en wat? Ik loop er even vast in?
Gewijzigd op 28/12/2011 10:47:39 door - Aar -
 
PHP hulp

PHP hulp

24/05/2012 15:00:27
Gesponsorde koppelingen:
 
Erwin H

Erwin H

28/12/2011 11:07:19
Quote Anchor link
Als ik het goed begrijp ben je dus op zoek naar een asynchrone call naar die API's, in tegenstelling tot een gebruikelijke synchrone call. Zelf heb ik dit nog nooit gedaan in php, maar deze thread op Stackoverflow kan misschien helpen:
http://stackoverflow.com/questions/962915/how-do-i-make-an-asynchronous-get-request-in-php

Overigens zijn AJAX calls altijd asynchroon, alleen dan doe je het client side terwijl je het volgens mij liever server side zou willen afhandelen (maar dat is mijn interpretatie van jouw probleem).
 
- Aar -

- Aar -

28/12/2011 11:30:40
Quote Anchor link
Ik wil dus dat in de hele Adminbackend waar ik door aan het browsen ben, dat er op de achtergrond dus een script draait.
Ik zal ook even die link bekijken.
 
Jacco Brandt

Jacco Brandt

28/12/2011 12:17:25
Quote Anchor link
Je kunt eerst de output regelen, dan de verbinding met de 'gebruiker' sluiten en daarna de rest afhandelen.

Zie ook deze functie:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
<?php

    /** Closes the connection
     *
     * Lets the client stop loading, while PHP continues executing
     *
     * @access public
     * @return void
     */

    public function closeConnection()
    {

        
        // send close-header
        header("Content-Length: " . ob_get_length());
        header("Content-Encoding: none");
        header('Connection: close');
        
        // flush all output
        while (@ob_end_flush());
        flush();
        
        // close current session
        if (session_id()) session_write_close();
        
    }
Gewijzigd op 28/12/2011 12:17:36 door Jacco Brandt
 



Overzicht Reageren

Get Adobe Flash player