FusionCharts - load large data in links using proxy function

by Shamasis Bhattacharya

HTML

<script src="http://static.fusioncharts.com/code/xt/5416/FusionCharts.js"></script>
<table align="center">
    <tr><td>Flash</td><td>JavaScript</td></tr>
    <tr><td id="container1"></td><td id="container3"></td></tr>
    <tr><td>with proxy</td><td>with proxy</td></tr>
    <tr><td id="container2"></td><td id="container4"></td></tr>
</table>
<center id="chart-container1"></center>
<center id="chart-container2"></center>

CSS

body {
    font-family: 'Verdana';
    font-size: 12px;
    line-height: 18px;
}

table td {
    padding: 0 5px;
}

JavaScript

window.__fusioncharts__linkproxy = (function() {
    var cache = {}; // data cache object
    return function(id, link) {
        setTimeout(function() {
            if (!link) {
                location.replace && location.replace(cache[id]) ||
                    (location.href = cache[id]);
            }
            else {
                cache[id] = link;
            }
        }, 0);
    };
}());

var flashChart, jsChart, flashChartWithProxy, jsChartWithProxy;

flashChart = new FusionCharts({
    type: "Column2D",
    renderer: 'flash',
    renderAt: "container1",
    dataSource: {
        data: [
            {
            value: '21',
            link: '/echo/html/?html=Lorem ipsum dolor sit amet, consectetur adipiscing elit. Ut vel quam eu dolor bibendum egestas et ac libero. Sed et nisl ac quam eleifend tristique. Morbi molestie neque at nulla hendrerit mollis. Praesent egestas dapibus velit in rhoncus. Nulla tristique convallis augue. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Donec gravida faucibus eros, sed feugiat tortor facilisis vel. Duis convallis, turpis quis tempus rhoncus, est nisl dictum elit, ullamcorper sodales ante dui ut ipsum. Maecenas a felis nibh. Fusce eu placerat nulla. Donec non arcu lectus. Pellentesque non erat neque, sit amet placerat tellus. Sed feugiat eleifend dignissim. Mauris condimentum, arcu vel condimentum semper, enim metus cursus ante, vitae iaculis ante sapien ut quam. Fusce ullamcorper ornare arcu convallis hendrerit. Nunc mollis blandit quam, a rutrum ante suscipit quis. Aliquam quis mauris vel lacus consequat hendrerit. Phasellus elit dolor, mattis vitae dapibus sit amet, pretium in est. Suspendisse potenti. Integer et tempor arcu. Ut nunc enim, tempor nec adipiscing non, accumsan pretium ligula. Nullam non nisi odio, quis tempor sem. Sed leo ligula, ultrices in feugiat non, porta vitae enim. Duis nulla erat, vulputate sit amet fermentum ac, sodales ut nulla. Vestibulum...