Email: info@zenconix.com

How Angular Application starts?

How Angular Application starts

Visit Site:

Overview

In this post we are going to take look on how angular application starts.

For any angular application, entry point is index.html. In index.html file there is tag called as <app-root>

<!--index.html-->

<!doctype html>
<html lang="en">
<head>
  <meta charset="utf-8">
  <title>Angular</title>
  <base href="/">

  <meta name="viewport" content="width=device-width, initial-scale=1">
  <link rel="icon" type="image/x-icon" href="favicon.ico">
</head>
<body>
  <app-root></app-root>
</body>
</html>

In main.ts file <app-root> selector is picked up by the AppModule.

Below is code snippet from main.ts file

//main.ts 

platformBrowserDynamic().bootstrapModule(AppModule)
  .catch(err => console.error(err));

AppModule is module which is bootstrapped this means specified module is going to load first in our angular application.

AppModule can be found in app folder (AppName/src/app/app.module.ts)

In app.module.ts file, we need to specify bootstrap array. Component listed here are automatically added as entry component.

As shown in code below App component is bootstrapped, so App Component will be added as entry component.

//bootstrap: [AppComponent]

Below is app.module.ts file for reference, there you can see AppComponent is bootstrapped. 
//app.module.ts

@NgModule({
  declarations: [AppComponent, HeaderComponent],
  imports: [
    BrowserModule,

    HttpClientModule,
    AppRoutingModule,
    StoreModule.forRoot(fromapp.appReducer),
    EffectsModule.forRoot([AuthEffects,RecipeEffects]),

    SharedModule,
    CoreModule,
  ],
  providers: [],
  bootstrap: [AppComponent],
})
export class AppModule {}

App Component will have same selector as <app-root> ,which is specified in it’s app.component.ts file. In app.component.ts file, inside the component decorator selector is specified as "app-root"

//app.component.ts

import { Component} from "@angular/core";
@Component({
  selector: "app-root",
  templateUrl: "./app.component.html",
  styleUrls: ["./app.component.css"],
})
export class AppComponent  {}

Therefore, template of this component specified in templateUrl will be rendered in index.html i.e. app.component.html

In this way angular application starts, please let me know in comment section below if you have any question.

Happy Coding !!

Features

Specifications

Preview

Learn C# – Namespaces



Visit Site:

Overview

What is Namespaces in C#?

C# Programs are organized using namespaces. Namespaces are used to add separation of Code in C#.

Namespaces can have following members inside it.

  1. Namespaces (nested)
  2. Classes
  3. Interface
  4. Delegates
  5. Structures

Why to use Namespaces?

Code Separation:

With help of Namespaces, you can separate out set of code in C# Project.
Example: if you have Project name “Bank” and it is having different class libraries separated by logic written in that libraries by name Data, Business, FrontEnd, etc. Then you may add namespaces by name as Bank.Data, Bank.Business, Bank.FrontEnd respectively.

By this way, you can separate out your code in different namespaces which will be easier to manage your project.

Resolve Conflict:

Using namespaces, you can resolve name conflicts in your project.

Example: if you have some class by name “User”, you cannot create another class with same name. But using namespaces, it is possible. Let’s continue with above example, if you are working on project – “Bank”, you can create a class named “User” in Bank.Data Namespace and again inside Bank.Business Namespace too and so on.

How to create Namespaces?

Namespaces in C# can be create using keyword “namespace”. To create namespace, just add keyword “namespace” before your namespace-name .

Example:
namespace namespace-name

{

//do something

}

Let’s go ahead and create a namespace

using System;
namespace Bank.Data
{
    class User
    {
        public void GetUser()
        { 
            //do something
        }
    }
}

In above example, we can see, we have created namespace by name “Bank.Data” and class inside it.

How to Use name namespaces

To access this method in another class, you can use fully qualified name for accessing it’s members as below.

class Program
{
        static void Main(string[] args)
        {
            Bank.Data.User user = new Bank.Data.User();
            user.GetUser();
        }
}

In above example, you can see, we have used fully qualified name of as Bank.Data.User then we have created object of class User and then called its methods.

One also can use keyword “using” to call other namespace’s members to some other namespaces as below.

using System;
using Bank.Data; 
namespace Learning.Nameapces
{
    class Program
    {
        static void Main(string[] args)
        {
            User user = new User();
            user.GetUser();
        }
    }

}

In above example, you can see we have added “using” keyword to add namespace “Bank.data” in our project. Once we added this namespace to our project, its member is readily available  to add in our class.

Nested Namespaces

In C#, we can have namespaces inside namespaces, that is called as nested namespaces. To use its members we can use dot (.) operator.

How to created nested namespace? To create  nested namespace, add namespace inside of namespaces as below.
We have added namespace by name “Database” inside our old namespace “Bank.Data”

using System;
namespace Bank.Data
{
    namespace Database
    {
        class User
        {
            public void GetUser()
            { 
                //do something
            }
        }
    }
    class User
    {
        public void GetUser()
        { 
            //do something
        }
    }

}

In above example, you can see, we have created namespace “Bank.Data” and added namespace inside it named “Database”  which having some other classes

How to call nested namespaces?

As we seen before, we have 2 ways to call namespaces- using fully qualified name, by “using” keyword.

We can use any of these method to call nested namespaces too.

By fully qualified name

class Program
{
        static void Main(string[] args)
        {
            Bank.Data.User user = new Bank.Data.User();
            user.GetUser();
        }
}

By “Using” keyword

using System;
using Bank.Data.Database; 
namespace Learning.Nameapces
{
    class Program
    {
        static void Main(string[] args)
        {
            User user = new User();
            user.GetUser();
        }
    }
}

Features

Specifications

Preview

Steps by step procedure to connect the database to Lumen



Visit Site:

Overview

  1. Create database in phpmyadmin
  2. Open .env file. NOTE: if .env file is with name, .env.sample, then rename it to .env
  3. Change following parameter in file
    1. DB_DATABASE=lumen
    2. DB_USERNAME=root
    3. DB_PASSWORD=
  4. Also check for following parameters if they are different than default setting
    1. DB_HOST=127.0.0.1
    2. DB_PORT=3306
  5. Next, as we are going to use Eloquent ORM, we need to un-comment some lines from bootstrap/app.php
    1. $app→withEloquent()
    2. $app→withFacades();
  6. open command prompt, go to project location and run following command
    php artisan make:migration create_users_table
  7. It will create new file for migration in Database/migration folder, by name “DateTime_create_user_table.php
  8. If we need to add custom columns, then add as below.
public function up()
    {
        Schema::create('users', function (Blueprint $table) {
            $table->bigIncrements('id');

            //create custom fields, we are going to add username, email and api_token
            $table->string('username');
            $table->string ('email');
            $table->text('api_token');
            $table->timestamps();
        });
    }
  1. Then run command php artisan migrate to migrate this table to database.

Reference and detailed documentation

Features

Specifications

Preview

Laravel – How to create Seed users



Visit Site:

Overview

Create migration file to create new users table

To create migration, open command prompt and execute following command

php artisan make:migration create_users_table

This will create new file in database/migration folder by name datatime_create_users_table.php

Open file and modify as below.

<?php

use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\Schema;
use Illuminate\Support\Facades\Hash;

class CreateUsersTable extends Migration
{
    /**
     * Run the migrations.
     *
     * @return void
     */
    public function up()
    {
        Schema::create('users', function (Blueprint $table) {
            $table->bigIncrements('id');
            $table->string('name');
            $table->string('email',250);
            $table->string('password');
            $table->timestamps();
        });
    }

    /**
     * Reverse the migrations.
     *
     * @return void
     */
    public function down()
    {
        Schema::dropIfExists('users');
    }
}

Define Model Factories

Now open ModelFactory.php from database/factories folder and define our model as below.

<?php
use Illuminate\Support\Facades\Hash;
/*
|--------------------------------------------------------------------------
| Model Factories
|--------------------------------------------------------------------------
|
| Here you may define all of your model factories. Model factories give
| you a convenient way to create models for testing and seeding your
| database. Just tell the factory how a default model should look.
|
*/

$factory->define(App\User::class, function (Faker\Generator $faker) {
    return [
        'name' => $faker->name,
        'email'    => $faker->unique()->email,
        'password'=>Hash::make('12345')
    ];
});

Create User Table Seeder

Create new file UsersTableSeeder.php and create UsersTableSeeder class in database\seeds\UsersTableSeeder.php and add code snipate as below

<?php
use Illuminate\Database\Seeder;
class UsersTableSeeder extends Seeder
{
    /**
     * Run the database seeds.
     *
     * @return void
     */
    public function run()
    {
        // create 10 users using the user factory
        factory(App\User::class, 10)->create();
    }
}

With this function, it will create 10 dummy users in users table.

Register User Seeder

We need to register newly created seeder in DatabaseSeeder.

Open database/seeds/DatabaseSeeder.php file and add below code.

<?php

use Illuminate\Database\Eloquent\Model;
use Illuminate\Database\Seeder;

class DatabaseSeeder extends Seeder
{
    /**
     * Run the database seeds.
     *
     * @return void
     */
    public function run()
    {
          Model::unguard();
        // Register the user seeder
        $this->call(UsersTableSeeder::class);
        Model::reguard();
    }
}

Changes in AppServiceProvider

If you try to run migration commands you will face error as below.

    [Illuminate\Database\QueryException] SQLSTATE[42000]: Syntax error or access violation: 1071 Specified key was too long; max key length is 767 bytes (SQL: alter tabl e users add unique users_email_unique(email))

    [PDOException] SQLSTATE[42000]: Syntax error or access violation: 1071 Specified key was too long; max key length is 767 bytes

To resolve this type of error, open app\providers\AppServiceProvider.php file and add below code

<?php

namespace App\Providers;

use Illuminate\Support\ServiceProvider;
use Illuminate\Database\Schema\Builder;
class AppServiceProvider extends ServiceProvider
{
    /**
     * Register any application services.
     *
     * @return void
     */
    public function register()
    {
        //
    }
    function boot()
    {
        Builder::defaultStringLength(191); // Update defaultStringLength
    }
}

Run commands to migrate and create dummy data

Now, open command prompt and add below commands
To create table in database, execute following command

php artisan migrate

To create seed users, execute following command

php artisan db:seed

Features

Specifications

Preview

Laravel – Create Common Response builder for all responses



Visit Site:

Overview

Create Helper function

Create new folder in app/http/ by name Helpers

Create new file ResponseBuilder.php

Create new class in ReponseBuilder.php with function with same name as file, so class name will be ResponseBuilder

first we need to add namespace, as our file is in app\http\Helpers folder, namespace for the file would be namespace App\Http\Helpers;

<?php
    namespace App\Http\Helpers;

    class ResponseBuilder
    {
        public static function Result($status="", $information="", $data="")
        {
            return [
                "success"=>$status,
                "information"=>$information,
                "data"=>$data
            ];
        }
    }
?>

Note: here we have created static function, so later we can directly use it without initialization of object using :: operator.

Call Helper function in GET method

public function GetAllPost()
{
        //return Post::all();
        $data = Post::all();
        $status = true;
        $information= "Data is fetched successfully";

        return ResponseBuilder::Result($status, $information, $data)
}

Call Helper function in POST Method

public function AddPost(Request $request)
    {
        $post = new Post;

        $post->id = $request->input('id');
        $post->title = $request->input('title');
        $post->content = $request ->input('content');
        //$post->save();
        $result = $post->save();
        if($result == 1)
        {
            $status = true;
            $information = "Data added successfully";
        }
        else
        {
            $status = false;
            $information ="Data not added successfully";
        }
        return ResponseBuilder::Result($status, $information);
    }

Create Routes

//add post
$router->post('/addpost', 'PostController@AddPost');
//get all posts
$router->get('/getallpost','PostController@GetAllPost');

Features

Specifications

Preview

Durandal JS for aspx page



Visit Site:

Overview

Hello all,

In last post we have seen what can be possibilities for single page application here

Today I have face very complex problem. Actually its a little one, but because of less documentation on the internet and no reference it was quite difficult to solve. But after some study of framework, I got the solution

I have created some demos with Durandal framework. Its having some different folder structure and some different configuration but with demo  or starter kit of its, you will get to know its work with HTML and js very will but my requirement was, it should run with aspx page too. Means I want aspx page as view for that I could not find solution on internet and api documentation of the framework too.

But I have find solution

What I done is, I have made some changes in the framework itself It having one js file named viewEngine.js. The viewEngine module provides information to the view Locator module which is used to locate the view’s source file. The viewEngine also transforms a view id into a view instance.

It just parse the HTML and if it found any other file, then it use parseHTML function of jquery

but It take default extension as .html so I have change the default extension to .aspx so it will only render aspx pages.

Note: If you are following started kit of Durandal, and made changes as I mention above then you also need to change the file extension of shell.html to shell.aspx because by above changes it will just render aspx files not html files as view

Enjoy, Have a great day ahead

 

 

Features

Specifications

Preview

Datepicker in jquery



Visit Site:

Overview

Hi there !

I have gone through some problem , this may not be very tough but I have spend more time on that so I think solution should publish

Requirement was something like as follows

for datepicker

for datepicker I have simply code as

[sourcecode language=”csharp”]
$("#date") .datepicker();
[/sourcecode]

but some conditions as

1) add months and years dropdown to the datepicker

so for that I have added some functions there

[sourcecode language=”csharp”]
changeYear:true,

changeMonth:true
[/sourcecode]

2) now the tough part comes here

by default jquery takes year as 2002 to 2012

but I need to have years from 1990 to 2012 so  I have started searching

and I found that

[sourcecode language=”csharp”]
yearRange: "1990:2012"
[/sourcecode]

3) Now I have to perform some action on close of that datepicker so I need some function on close event of the datepicker

I could have 2 function 1) onClose 2) onSelect any one I could take

so have taken onClose function and could added some functionality

[sourcecode language=”csharp”]
onClose: function () {
// some code
}
[/sourcecode]

You can have demo here
Show More

Features

Specifications

Preview

Show and hide scroll bar by jquery



Visit Site:

Overview

Today we will see how to hide and show scroll bar of the table in div by Jquery mouse events

what I will do here , is I have created one table in div section for showing scroll bar I reduced the size of the div and when i will move the mouse on that div i will show the scroll and when will leave the mouse from div then hide scroll

HTML

[sourcecode language=”csharp”]
<div id="tableDiv" style="overflow: auto; width: 300px; height: 200px;">
<table border="1" id="table">
<tr>
<td>first TR first TD</td>
<td>first TR second TD</td>
<td>first TR third TD</td>
<td>first TR forth TD</td>
<td>first TR fifth TD</td>
<td>first TR sixth TD</td>
</tr>
<tr>
<td>second TR first TD</td>
<td>second TR second TD</td>
<td>second TR third TD</td>
<td>second TR forth TD</td>
<td>second TR fifth TD</td>
<td>second TR sixth TD</td>
</tr>
<tr>
<td>third TR first TD</td>
<td>forth TR second TD</td>
<td>fifth TR third TD</td>
<td>sixth TR forth TD</td>
<td>seventh TR fifth TD</td>
<td>eigth TR sixth TD</td>
</tr>
</table>
</div>
[/sourcecode]
[sourcecode language=”csharp”]
/*————————————
show scroll bar on mouse move and again hide on mouse leave */
$("#tableDiv").mousemove(function () {
$(this).css("overflow", "auto");

});
$("#tableDiv").mouseleave(function () {
$(this).css("overflow", "hidden");
});
[/sourcecode]

for more visit ,
Demo

Features

Specifications

Preview

Use dataTable in Project



Visit Site:

Overview

Here is the code of how to use the dataTable.js in your project

Here I have taken a single example of the table and I will show you how to bind that table with dataTable.js

Features

  1.  pagination
  2.  searching
  3.  sorting
  4.  css

But you should have following things in your machin or should have CDN of this

  1. jquery.js
  2. jquery-ui.js
  3. jquery.dataTables.min.js or jquery.dataTables.css
  4. demo_table_jui.css

[sourcecode language=”csharp”]</pre>
<!– complete data Table solution –>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html>
<head>
<script src="jquery-1.9.1.js" type="text/javascript"></script>

<script src="http://code.jquery.com/jquery-1.9.1.js" type="text/javascript"></script>
<script src="http://code.jquery.com/ui/1.10.3/jquery-ui.js" type="text/javascript"></script>
<script src="jquery.dataTables.min.js" type="text/javascript"></script>
<link href="jquery.dataTables_themeroller.css" rel="stylesheet" type="text/css" />
<link href="jquery.dataTables.css" rel="stylesheet" type="text/css" />
<link href="demo_table_jui.css" rel="stylesheet" type="text/css" />
<link href="http://code.jquery.com/ui/1.10.3/themes/smoothness/jquery-ui.css" rel="stylesheet" type="text/css" />

<!–jquery function –>
<script type="text/javascript">
$(document).ready(function(){
oTable = $(‘#example’).dataTable({
"bJQueryUI": true,
"sPaginationType": "full_numbers"
});
});
</script>
</head>
<body id="dt_example">
<div id="container">
<table cellpadding="0" cellspacing="0" border="0" class="display" id="example">
<thead>
<tr>
<th>Rendering engine</th>
<th>Browser</th>
<th>Platform(s)</th>
<th>Engine version</th>
<th>CSS grade</th>
</tr>
</thead>
<tbody>
<tr class="odd gradeX">
<td>Trident</td>
<td>Internet Explorer 4.0</td>
<td>Win 95+</td>
<td class="center"> 4</td>
<td class="center">X</td>
</tr>
<tr class="even gradeC">
<td>Trident</td>
<td>Internet Explorer 5.0</td>
<td>Win 95+</td>
<td class="center">5</td>
<td class="center">C</td>
</tr>
<tr class="odd gradeA">
<td>Trident</td>
<td>Internet Explorer 5.5</td>
<td>Win 95+</td>
<td class="center">5.5</td>
<td class="center">A</td>
</tr>
<tr class="even gradeA">
<td>Trident</td>
<td>Internet Explorer 6</td>
<td>Win 98+</td>
<td class="center">6</td>
<td class="center">A</td>
</tr>
<tr class="odd gradeA">
<td>Trident</td>
<td>Internet Explorer 7</td>
<td>Win XP SP2+</td>
<td class="center">7</td>
<td class="center">A</td>
</tr>
<tr class="even gradeA">
<td>Trident</td>
<td>AOL browser (AOL desktop)</td>
<td>Win XP</td>
<td class="center">6</td>
<td class="center">A</td>
</tr>
<tr class="gradeA">
<td>Gecko</td>
<td>Firefox 1.0</td>
<td>Win 98+ / OSX.2+</td>
<td class="center">1.7</td>
<td class="center">A</td>
</tr>
<tr class="gradeA">
<td>Gecko</td>
<td>Firefox 1.5</td>
<td>Win 98+ / OSX.2+</td>
<td class="center">1.8</td>
<td class="center">A</td>
</tr>
<tr class="gradeA">
<td>Gecko</td>
<td>Firefox 2.0</td>
<td>Win 98+ / OSX.2+</td>
<td class="center">1.8</td>
<td class="center">A</td>
</tr>
<tr class="gradeA">
<td>Gecko</td>
<td>Firefox 3.0</td>
<td>Win 2k+ / OSX.3+</td>
<td class="center">1.9</td>
<td class="center">A</td>
</tr>
<tr class="gradeA">
<td>Gecko</td>
<td>Camino 1.0</td>
<td>OSX.2+</td>
<td class="center">1.8</td>
<td class="center">A</td>
</tr>
<tr class="gradeA">
<td>Gecko</td>
<td>Camino 1.5</td>
<td>OSX.3+</td>
<td class="center">1.8</td>
<td class="center">A</td>
</tr>
<tr class="gradeA">
<td>Gecko</td>
<td>Netscape 7.2</td>
<td>Win 95+ / Mac OS 8.6-9.2</td>
<td class="center">1.7</td>
<td class="center">A</td>
</tr>
<tr class="gradeA">
<td>Gecko</td>
<td>Netscape Browser 8</td>
<td>Win 98SE+</td>
<td class="center">1.7</td>
<td class="center">A</td>
</tr>
<tr class="gradeA">
<td>Gecko</td>
<td>Netscape Navigator 9</td>
<td>Win 98+ / OSX.2+</td>
<td class="center">1.8</td>
<td class="center">A</td>
</tr>
<tr class="gradeA">
<td>Gecko</td>
<td>Mozilla 1.0</td>
<td>Win 95+ / OSX.1+</td>
<td class="center">1</td>
<td class="center">A</td>
</tr>
<tr class="gradeA">
<td>Gecko</td>
<td>Mozilla 1.1</td>
<td>Win 95+ / OSX.1+</td>
<td class="center">1.1</td>
<td class="center">A</td>
</tr>
<tr class="gradeA">
<td>Gecko</td>
<td>Mozilla 1.2</td>
<td>Win 95+ / OSX.1+</td>
<td class="center">1.2</td>
<td class="center">A</td>
</tr>
<tr class="gradeA">
<td>Gecko</td>
<td>Mozilla 1.3</td>
<td>Win 95+ / OSX.1+</td>
<td class="center">1.3</td>
<td class="center">A</td>
</tr>
<tr class="gradeA">
<td>Gecko</td>
<td>Mozilla 1.4</td>
<td>Win 95+ / OSX.1+</td>
<td class="center">1.4</td>
<td class="center">A</td>
</tr>
<tr class="gradeA">
<td>Gecko</td>
<td>Mozilla 1.5</td>
<td>Win 95+ / OSX.1+</td>
<td class="center">1.5</td>
<td class="center">A</td>
</tr>
<tr class="gradeA">
<td>Gecko</td>
<td>Mozilla 1.6</td>
<td>Win 95+ / OSX.1+</td>
<td class="center">1.6</td>
<td class="center">A</td>
</tr>
<tr class="gradeA">
<td>Gecko</td>
<td>Mozilla 1.7</td>
<td>Win 98+ / OSX.1+</td>
<td class="center">1.7</td>
<td class="center">A</td>
</tr>
<tr class="gradeA">
<td>Gecko</td>
<td>Mozilla 1.8</td>
<td>Win 98+ / OSX.1+</td>
<td class="center">1.8</td>
<td class="center">A</td>
</tr>
<tr class="gradeA">
<td>Gecko</td>
<td>Seamonkey 1.1</td>
<td>Win 98+ / OSX.2+</td>
<td class="center">1.8</td>
<td class="center">A</td>
</tr>
<tr class="gradeA">
<td>Gecko</td>
<td>Epiphany 2.20</td>
<td>Gnome</td>
<td class="center">1.8</td>
<td class="center">A</td>
</tr>
<tr class="gradeA">
<td>Webkit</td>
<td>Safari 1.2</td>
<td>OSX.3</td>
<td class="center">125.5</td>
<td class="center">A</td>
</tr>
<tr class="gradeA">
<td>Webkit</td>
<td>Safari 1.3</td>
<td>OSX.3</td>
<td class="center">312.8</td>
<td class="center">A</td>
</tr>
<tr class="gradeA">
<td>Webkit</td>
<td>Safari 2.0</td>
<td>OSX.4+</td>
<td class="center">419.3</td>
<td class="center">A</td>
</tr>
<tr class="gradeA">
<td>Webkit</td>
<td>Safari 3.0</td>
<td>OSX.4+</td>
<td class="center">522.1</td>
<td class="center">A</td>
</tr>
<tr class="gradeA">
<td>Webkit</td>
<td>OmniWeb 5.5</td>
<td>OSX.4+</td>
<td class="center">420</td>
<td class="center">A</td>
</tr>
<tr class="gradeA">
<td>Webkit</td>
<td>iPod Touch / iPhone</td>
<td>iPod</td>
<td class="center">420.1</td>
<td class="center">A</td>
</tr>
<tr class="gradeA">
<td>Webkit</td>
<td>S60</td>
<td>S60</td>
<td class="center">413</td>
<td class="center">A</td>
</tr>
<tr class="gradeA">
<td>Presto</td>
<td>Opera 7.0</td>
<td>Win 95+ / OSX.1+</td>
<td class="center">-</td>
<td class="center">A</td>
</tr>
<tr class="gradeA">
<td>Presto</td>
<td>Opera 7.5</td>
<td>Win 95+ / OSX.2+</td>
<td class="center">-</td>
<td class="center">A</td>
</tr>
<tr class="gradeA">
<td>Presto</td>
<td>Opera 8.0</td>
<td>Win 95+ / OSX.2+</td>
<td class="center">-</td>
<td class="center">A</td>
</tr>
<tr class="gradeA">
<td>Presto</td>
<td>Opera 8.5</td>
<td>Win 95+ / OSX.2+</td>
<td class="center">-</td>
<td class="center">A</td>
</tr>
<tr class="gradeA">
<td>Presto</td>
<td>Opera 9.0</td>
<td>Win 95+ / OSX.3+</td>
<td class="center">-</td>
<td class="center">A</td>
</tr>
<tr class="gradeA">
<td>Presto</td>
<td>Opera 9.2</td>
<td>Win 88+ / OSX.3+</td>
<td class="center">-</td>
<td class="center">A</td>
</tr>
<tr class="gradeA">
<td>Presto</td>
<td>Opera 9.5</td>
<td>Win 88+ / OSX.3+</td>
<td class="center">-</td>
<td class="center">A</td>
</tr>
<tr class="gradeA">
<td>Presto</td>
<td>Opera for Wii</td>
<td>Wii</td>
<td class="center">-</td>
<td class="center">A</td>
</tr>
<tr class="gradeA">
<td>Presto</td>
<td>Nokia N800</td>
<td>N800</td>
<td class="center">-</td>
<td class="center">A</td>
</tr>
<tr class="gradeA">
<td>Presto</td>
<td>Nintendo DS browser</td>
<td>Nintendo DS</td>
<td class="center">8.5</td>
<td class="center">C/A<sup>1</sup></td>
</tr>
<tr class="gradeC">
<td>KHTML</td>
<td>Konqureror 3.1</td>
<td>KDE 3.1</td>
<td class="center">3.1</td>
<td class="center">C</td>
</tr>
<tr class="gradeA">
<td>KHTML</td>
<td>Konqureror 3.3</td>
<td>KDE 3.3</td>
<td class="center">3.3</td>
<td class="center">A</td>
</tr>
<tr class="gradeA">
<td>KHTML</td>
<td>Konqureror 3.5</td>
<td>KDE 3.5</td>
<td class="center">3.5</td>
<td class="center">A</td>
</tr>
<tr class="gradeX">
<td>Tasman</td>
<td>Internet Explorer 4.5</td>
<td>Mac OS 8-9</td>
<td class="center">-</td>
<td class="center">X</td>
</tr>
<tr class="gradeC">
<td>Tasman</td>
<td>Internet Explorer 5.1</td>
<td>Mac OS 7.6-9</td>
<td class="center">1</td>
<td class="center">C</td>
</tr>
<tr class="gradeC">
<td>Tasman</td>
<td>Internet Explorer 5.2</td>
<td>Mac OS 8-X</td>
<td class="center">1</td>
<td class="center">C</td>
</tr>
<tr class="gradeA">
<td>Misc</td>
<td>NetFront 3.1</td>
<td>Embedded devices</td>
<td class="center">-</td>
<td class="center">C</td>
</tr>
<tr class="gradeA">
<td>Misc</td>
<td>NetFront 3.4</td>
<td>Embedded devices</td>
<td class="center">-</td>
<td class="center">A</td>
</tr>
<tr class="gradeX">
<td>Misc</td>
<td>Dillo 0.8</td>
<td>Embedded devices</td>
<td class="center">-</td>
<td class="center">X</td>
</tr>
<tr class="gradeX">
<td>Misc</td>
<td>Links</td>
<td>Text only</td>
<td class="center">-</td>
<td class="center">X</td>
</tr>
<tr class="gradeX">
<td>Misc</td>
<td>Lynx</td>
<td>Text only</td>
<td class="center">-</td>
<td class="center">X</td>
</tr>
<tr class="gradeC">
<td>Misc</td>
<td>IE Mobile</td>
<td>Windows Mobile 6</td>
<td class="center">-</td>
<td class="center">C</td>
</tr>
<tr class="gradeC">
<td>Misc</td>
<td>PSP browser</td>
<td>PSP</td>
<td class="center">-</td>
<td class="center">C</td>
</tr>
<tr class="gradeU">
<td>Other browsers</td>
<td>All others</td>
<td>-</td>
<td class="center">-</td>
<td class="center">U</td>
</tr>
</tbody>
<tfoot>
<tr>
<th>Rendering engine</th>
<th>Browser</th>
<th>Platform(s)</th>
<th>Engine version</th>
<th>CSS grade</th>
</tr>
</tfoot>
</table>

</div>
</body>
</html>
<pre>[/sourcecode]

Features

Specifications

Preview

Confirm Old Password and New Password at client side with jquery



Visit Site:

Overview

(more…)

Features

Specifications

Preview