Wikia

Wikia Developers Wiki

AjaxRC

635pages on
this wiki
Talk164
AjaxRC is a script for advanced auto refreshing recent changes and watchlist. This is a modified version of the WoWWiki script.

Usage

If you would like to use the script, simply add the following to your wiki's MediaWiki:Common.js (for wiki-wide use), w:Special:MyPage/global.js (for personal use on all Wikia-hosted wikis) or Special:MyPage/monobook.js/Special:MyPage/wikia.js on a specific wiki:

importArticles({
    type: 'script',
    articles: [
        'u:dev:AjaxRC/code.js',
    ]
});
importArticles — Best Practices for installing JavaScript on Wikia
The importArticles statement is designed to combine multiple HTTP requests into a single data transfer, allowing multiple scripts to load and execute faster. If you've been installing several different scripts, your JavaScript file has probably accumulated unnecessary import statements. Click "Expand" to learn how to efficiently batch import scripts to speed up performance and make your code look cleaner. One other approach is by using the MediaWiki:ImportJS.
If your JavaScript file has several lines of code that say importScript, importScriptPage, or importArticles, you may be able to combine them! By batch importing a collection of scripts with a single import, your JavaScript code will load faster and look cleaner. Consider the example below. On the left is an example of what your JavaScript file might currently look like. On the right is how you could improve that code.
Multiple imports — messy and slow One import — clean and efficient
importScriptPage('AjaxRC/code.js','dev');
 
importScript('MediaWiki:localScript.js');
 
importArticle({
  type: 'script',
  article: 'u:dev:FloatingToc/code.js'
});
 
importScriptPage('page1.js', 'wikiname');
 
importScriptPage('page2.js', 'wikiname');
importArticles({
    type: 'script',
    articles: [
        'u:dev:AjaxRC/code.js',
        'MediaWiki:localScript.js',
        'u:dev:FloatingToc/code.js',
        'u:wikiname:page1.js',
        'u:wikiname:page2.js'
    ]
});
Note: In this example, pay close attention to the placement of commas and other punctuation. For people who aren't familiar with programming (and even those who are!), a common mistake when writing code is to accidentally delete, forget, or misplace critical symbols like commas or quotation marks. This can cause a syntax error that breaks the code. Carefully follow the convention shown here when using importArticles.
But there's much more to importArticles than just this! For more examples and advanced usage, see the help page at Help:Including additional JavaScript and CSS.

What it does

  • The code adds a checkbox at the top of Special:RecentChanges and Special:Watchlist, next to the header.
  • Ticking this sets a cookie (specific to each wiki) and starts updating the list.
  • This occurs silently every 60 seconds without a full page reload occurring.

Options

You can change some settings in your JavaScript by adding some/all of the following.

  • The effect can be applied to other pages by adding above the import line code similar to:
window.ajaxPages = ["Special:RecentChanges","Special:Watchlist","Special:Log","Special:Contributions"];
importArticles({
    type: 'script',
    articles: [
        'u:dev:AjaxRC/code.js',
    ]
});
  • An alternate progress indicator can be declared below the import line as such:
window.ajaxIndicator = 'http://images2.wikia.nocookie.net/__cb20100609110347/software/images/a/a9/Indicator.gif';
importArticles({
    type: 'script',
    articles: [
        'u:dev:AjaxRC/code.js',
    ]
});
  • The refresh time can be changed by adding (this changes time to 30 seconds):
window.ajaxRefresh = 30000;
importArticles({
    type: 'script',
    articles: [
        'u:dev:AjaxRC/code.js',
    ]
});
  • To change the text of the "AJAX" or the hover information, set AjaxRCRefreshText and AjaxRCRefreshHoverText before the import, like this
window.AjaxRCRefreshText = 'Auto-refresh';
window.AjaxRCRefreshHoverText = 'Automatically refresh the page';
importArticles({
    type: 'script',
    articles: [
        'u:dev:AjaxRC/code.js',
    ]
});
  • If you have functions that modify the content that's reloaded, they won't work after the first refresh unless you run them again after the content has loaded. You can do this by adding them to the ajaxCallAgain variable, like this:
window.ajaxCallAgain = window.ajaxCallAgain || [];
window.ajaxCallAgain.push(function1, function2, function3);
importArticles({
    type: 'script',
    articles: [
        'u:dev:AjaxRC/code.js',
    ]
});
Using configuration options with Wikia Developer's Wiki scripts
The instructions on this page describe how to use configuration options with a script. Here on the Wikia Developer's Wiki, many scripts provide optional configuration settings as a mean to alter or enhance the default behavior of the script. When installing configuration options in your JavaScript file, please note that they need to go above the import statement in order to work — unless the directions say otherwise.
Configuration options load too late, don't work
Proper placement of configuration options
// 1. AjaxRC import statement
importScriptPage('Mediawiki:AjaxRC/code.js','dev');
 
// 2. AjaxRC configuration option
var ajaxRefresh = 30000;
// 1. AjaxRC configuration option
var ajaxRefresh = 30000;
 
// 2. AjaxRC import statement
importScriptPage('Mediawiki:AjaxRC/code.js','dev');

See also

Around Wikia's network

Random Wiki