Father Chrysostomos > WWW-Scripter-Plugin-Ajax-0.09 > WWW::Scripter::Plugin::Ajax

Download:
WWW-Scripter-Plugin-Ajax-0.09.tar.gz

Dependencies

Annotate this POD

View/Report Bugs
Module Version: 0.09   Source  

NAME ^

WWW::Scripter::Plugin::Ajax - WWW::Scripter plugin that provides the XMLHttpRequest object

VERSION ^

Version 0.09 (alpha)

SYNOPSIS ^

  use WWW::Scripter;
  $w = new WWW::Scripter;
  
  $m->use_plugin('Ajax');
  $m->get('http://some.site.com/that/relies/on/ajax');

DESCRIPTION ^

This module is a plugin for WWW::Scripter that loads the JavaScript plugin (WWW::Scripter::Plugin::JavaScript) and provides it with the XMLHttpRequest object.

To load the plugin, use WWW::Scripter's use_plugin method, as shown in the Synopsis. Any extra arguments to use_plugin will be passed on to the JavaScript plugin (at least for now).

ASYNCHRONY ^

The XMLHttpRequest object currently does not support asynchronous connections. Later this will probably become an option, at least for threaded perls.

NON-HTTP ADDRESSES ^

Since it uses LWP, URI schemes other than http (e.g., file, ftp) are supported.

INTERFACE ^

The XMLHttpRequest interface members supported so far are:

  Methods:
  open
  send
  abort
  getAllResponseHeaders
  getResponseHeader
  setRequestHeader
  
  Attributes:
  onreadystatechange
  readyState
  responseText
  responseXML
  status
  statusText
  
  Event-Related Methods:
  addEventListener
  removeEventListener
  dispatchEvent

  Constants (static properties):
  UNSENT
  OPENED
  HEADERS_RECEIVED
  LOADING
  DONE

responseBody, overrideMimeType, getRequestHeader, removeRequestHeader and more event attributes are likely to be added in future versions.

PREREQUISITES ^

This plugin requires perl 5.8.5 or higher, and the following modules:

BUGS ^

If you find any bugs, please report them to the author by e-mail (preferably with a patch :-).

XML::DOM::Lite is quite lenient toward badly-formed XML, so the responseXML property returns something useful even in cases when it should be null.

The SECURITY_ERR, NETWORK_ERR and ABORT_ERR constants are not available yet, as I don't know where to put them.

It does not conform to the spec in every detail, since the spec is still being written and is different every time I check it.

None of the additional features in the Level 2 spec are implemented.

There is currently no API to signal that the user has cancelled a connection. You can call the abort method, but that does not have exactly the same result that a user-initiated cancellation is meant to have.

Furthermore, this module follows the badly-designed API that is unfortunately the standard so I can't do anything about it.

AUTHOR & COPYRIGHT ^

Copyright (C) 2008-11 Father Chrysostomos <['sprout', ['org', 'cpan'].reverse().join('.')].join('@')>

This program is free software; you may redistribute it and/or modify it under the same terms as perl.

ACKNOWLEDGEMENTS ^

Erwan Mas provided a bug fix.

SEE ALSO ^

WWW::Scripter

WWW::Scripter::Plugin::JavaScript

XML::DOM::Lite

The XMLHttpRequest specification (draft as of August 2009): http://www.w3.org/TR/XMLHttpRequest/

XMLHttpRequest Level 2: http://www.w3.org/TR/XMLHttpRequest2/

WWW::Mechanize::Plugin::Ajax (the original version of this module)

syntax highlighting: