runspa
Version:
A simple jQuery Single Page Application Plugin
242 lines (192 loc) • 5.36 kB
Markdown
# [RunSPA](#runspa)
![bower][bower-image] [![NPM version][npm-image]][npm-url] [![Build Status][travis-image]][travis-url] [![][jsdelivr-image]][jsdelivr-url]
> A simple jQuery Single Page Application Plugin
- [Lanx HCM Projects](http://www.lanx.com.br)
## Getting started
### Quick start
Three quick start options are available:
- [Download the latest release](https://github.com/carlosrfjunior/runspa/archive/master.zip).
- Clone the repository: `git clone https://github.com/carlosrfjunior/runspa.git`.
- Install with [NPM](https://www.npmjs.com/package/runspa): `npm install runspa`.
- Install with [Bower](http://bower.io): `bower install runspa`.
- Install with [Yarn](https://yarn.pm/runspa): `yarn add runspa`.
### Installation
Include files:
```
dist/
├── runspa.js (80 KB)
└── runspa.min.js (68 KB)
```
```html
<script src="/path/to/jquery.js"></script><!-- jQuery is required -->
<script src="/path/dist/runspa.min.js"></script>
```
## Basic Use
- HTML definitions
```html
<a href="#my/list" data-spa="my/list"></a> <!-- Definition menu or Button [Route Hash] -->
<div id="[ID Main Container]"></div> <!-- Definition Main Container, all content html will been load here -->
```
- General Definitions
```javascript
$.runspa({
id: '[ID Main Container]',
defaultPage: 'Route Default',
title: 'Title Default'
});
```
- Routes Definitions
```javascript
$.runspa.route('[Route Hash]', {
title: 'Title Page',
path: 'client', /* Optional */
autoCreateRoute: true, /* Optional */
metaTag: { /* All Meta Tags HTML*/
'keywords': '...',
'description': '...'
},
css: [
{url: 'path/style1.css'},
{url: 'path/style2.css'},
],
scripts: [
{url: 'path/scripts1.js' /* async optional */},
{url: 'path/scripts2.js' /* async optional */}
],
beforeSend: function () {
/* Code */
},
success: function (e) {
/* Code */
},
error: function (e) {
/* Code */
}
}, function (page) {
/* Code */
});
```
- All available default settings
```javascript
$.runspa({
id: undefined,
language: 'en',
defaultPage: undefined,
pageError: undefined,
autoCreateRoute: false,
method: 'GET',
cache: false,
data: undefined,
dataType: 'html',
extension: undefined,
prefix: undefined,
classActive: 'active',
success: undefined,
beforeSend: undefined,
error: undefined,
loading: true,
loadingClass: undefined,
loadingLabel: 'Loading...',
loadingImage: '[Data Image Base64]'
});
```
## Events
- Load the page required
```javascript
$.runspa.get(name, [options, function]);
```
**Example:**
```javascript
$.runspa.get('Route Hash', {
title: 'Description Page',
path: 'client', /* Optional */
autoCreateRoute: true, /* Optional */
metaTag: { /* All Meta Tags HTML*/
'keywords': '...',
'description': '...'
},
css: [
{url: 'path/style1.css'},
{url: 'path/style2.css'},
],
scripts: [
{url: 'path/scripts1.js' /* [async:true, defer:true] optional */},
{url: 'path/scripts2.js' /* [async:true, defer:true] optional */}
],
beforeSend: function () {
/* Code */
},
success: function (e) {
/* Code */
},
error: function (e) {
/* Code */
}
}, function (page) {
/* Code */
});
```
- Function load files script manual
```javascript
$.runspa.inject(options, [function]);
```
**Examples:**
- Load files javascript or CSS
```javascript
$.runspa.inject({
css: [
{url: 'path/style1.css'},
{url: 'path/style2.css'},
],
scripts: [
{url: 'path/scripts1.js' /* [async:true, defer:true] optional */},
{url: 'path/scripts2.js' /* [async:true, defer:true] optional */}
]
});
```
- Load Files CSS
```javascript
$.runspa.inject({
css: [
{url: 'path/style1.css'},
{url: 'path/style2.css'},
]
});
```
- Load Files JavaScript
```javascript
$.runspa.inject({
scripts: [
{url: 'path/scripts1.js' /* [async:true, defer:true] optional */},
{url: 'path/scripts2.js' /* [async:true, defer:true] optional */}
]
});
```
```javascript
$.runspa.inject({
css: [
{url: 'path/style1.css'},
{url: 'path/style2.css'},
],
scripts: [
{url: 'path/scripts1.js' /* [async:true, defer:true] optional */},
{url: 'path/scripts2.js' /* [async:true, defer:true] optional */}
]
}, function(){
// Your Code
});
```
## Author
[Carlos Júnior](https://github.com/carlosrfjunior)
## Issues
Please post issues and feature request here [Github issues](https://github.com/carlosrfjunior/runspa/issues)
## Copyright and License
[MIT](http://opensource.org/licenses/MIT) © 2018 [Carlos R F Júnior](http://www.lanx.com.br)
[⬆ back to top](#runspa)
[bower-image]: https://badge.fury.io/bo/runspa.svg
[npm-url]: https://npmjs.org/package/runspa
[npm-image]: https://badge.fury.io/js/runspa.svg
[travis-image]: https://travis-ci.org/carlosrfjunior/runspa.svg?branch=master
[travis-url]: https://travis-ci.org/carlosrfjunior/runspa
[jsdelivr-image]: https://data.jsdelivr.com/v1/package/npm/runspa/badge
[jsdelivr-url]: https://www.jsdelivr.com/package/npm/runspa