ইন্টারনেট কানেকশন না থাকলে ইউজারকে জাভাস্ক্রিপ্ট ব্যবহার করে নোটিফাই করুন

একটি ডাইনামিক ওয়েব এপ্লিকেশন এর ক্ষেত্রে সকল কনটেন্ট অ্যাজাক্স ব্যবহার করে ডাইনামিক ভাবে লোড করা হয় যেখানে পেজ এবং পেজের কনটেন্ট পরিবর্তন হয় কিন্ত ব্রাউজার পেজ রিলোড হয় না। এরকম অ্যাপ্লিকেশন এর মধ্যে অনেক অ্যাপ্লিকেশনে দেখা যায় অ্যাপ্লিকেশনে ডেটা লোড চলাকালীন ইন্টারনেট ডিসকানেক্ট হয়ে গেলে ইউজারকে জানিয়ে দেওয়া হয় যে তার ইন্টারনেট ডিসকানেক্ট হয়ে গেছে। তো চাইলে আপনিও আপনার সাইটে কিংবা অ্যাপ্লিকেশনে এরকম নোটিফাই সিস্টেম করতে পারেন। আজকের পোস্টে ইন্টারনেট কানেকশন না থাকলে কিভাবে জাভাস্ক্রিপ্ট ব্যবহার করে ইউজারকে নোটিফাই করবেন সে বিষয়ে আলোচনা করবো। তাহলে চলুন জাম্প করা যাক মূল পোস্টে।



প্রথমে জেনে নেওয়া যাক এটা কাজ কিভাবে করবে। মূলত এটা করার জন্য সার্ভারে একটি এইচটিটিপি রিকুয়েস্ট পাঠাবো। যদি ইন্টারনেট কানেকশন থাকে তাহলে আমরা যে ডেটার জন্য রিকুয়েস্ট করেছি সেটা পাবো। আর যদি সঠিক ডেটা না পাই কিংবা রিকুয়েস্ট পাঠানো সম্ভব না হয় তাহলে বুঝতে হবে ইন্টারনেট কানেকশন ঠিক নেই এবং তখন আমরা ইউজারকে নোটিফাই করার ইভেন্ট কল করবো।

তো আশা করছি বুঝে গেছেন কিভাবে এই প্রজেক্ট কাজ করবে। এবার তাহলে দেখে নেওয়া যাক এর জন্য প্রয়োজনীয় কোডগুলো।

ইউজারকে নোটিফাই করার জন্য আমাদের এইচটিএমএল, সিএসএস, জাভাস্ক্রিপ্ট তিন ল্যাঙ্গুয়েজের দরকার হবে। এইচটিএমএল এবং সিএসএস ব্যবহার করে নোটিফিকেশন টোস্ট এর ডিজাইন করা হবে এবং জাভাস্ক্রিপ্ট ব্যবহার করে নোটিফাই ইভেন্ট কল করা হবে।

HTML

আগের মতই প্রথমে আমরা এইচটিএমএল এর কাজ করবো। তো জাস্ট নিচের এইচটিএমএল কোডটুকু কপি করে আপনার এইচটিএমএল ডকুমেন্ট এ যুক্ত করে দিন।
<div class="notify hide">
    <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M6.92,5.51h0L3.71,2.29A1,1,0,0,0,2.29,3.71L4.56,6A15.21,15.21,0,0,0,1.4,8.39a1,1,0,0,0,0,1.41,1,1,0,0,0,.71.3,1,1,0,0,0,.7-.29A13.07,13.07,0,0,1,6.05,7.46L7.54,9a10.78,10.78,0,0,0-3.32,2.27,1,1,0,1,0,1.42,1.4,8.8,8.8,0,0,1,3.45-2.12l1.62,1.61a7.07,7.07,0,0,0-3.66,1.94,1,1,0,1,0,1.42,1.4A5,5,0,0,1,12,14a4.13,4.13,0,0,1,.63.05l7.66,7.66a1,1,0,0,0,1.42,0,1,1,0,0,0,0-1.42ZM12,16a3,3,0,1,0,3,3A3,3,0,0,0,12,16Zm0,4a1,1,0,1,1,1-1A1,1,0,0,1,12,20ZM22.61,8.39A15,15,0,0,0,10.29,4.1a1,1,0,1,0,.22,2A13.07,13.07,0,0,1,21.2,9.81a1,1,0,0,0,1.41-1.42Zm-4.25,4.24a1,1,0,0,0,1.42-1.4,10.75,10.75,0,0,0-4.84-2.82,1,1,0,1,0-.52,1.92A8.94,8.94,0,0,1,18.36,12.63Z"/></svg>
    <p>No Internet Connection!</p>
</div> 

CSS

এইচটিএমএল এর কাজ শেষে এবার নোটিফিকেশন টোস্ট ডিজাইন করার জন্য নিচের সিএসএস কোডটুকু কপি করে আপনার সিএসএস ফাইলের মধ্যে কিংবা এইচটিএমএল এর মধ্যে বডি ট্যাগ এর ভিতরে পেস্ট করে দিন।
.notify {
    width: 300px;
    height: 60px;
    padding: 0 30px;
    background: #f8f8f8;
    display: flex;
    align-items: center;
    justify-content: space-between;
    font-size: 17px;
    color: gray;
    position: fixed;
    bottom: 50px;
    right: 20px;
    border-bottom: 3px solid #e5e5e5;
    border-radius: 10px;
    transition: all 0.2s cubic-bezier(0.5, 1.8, 0.9, 0.8);
}
.notify svg {
    height: 40px;
    fill: gray;
}
.notify.hide {
    visibility: hidden;
    right: -370px
}

JavaScript

এইচটিএমএল এবং সিএসএস এর কাজ যেহেতু শেষ এবার তাহলে জাভাস্ক্রিপ্ট এর কাজ করা যাক। তো এবার নিচের জাভাস্ক্রিপ্ট কোডগুলো দিয়ে একটি জাভাস্ক্রিপ্ট ফাইল তৈরি করে সেটা আপনার এইচটিএমএল ডকুমেন্ট এর সাথে লিঙ্ক করে দিন তাহলেই কাজ শেষ।
notify = document.querySelector(".notify");

window.onload = ()=>{
    function checkInternet(){
        let request = new XMLHttpRequest();
        request.open("GET", "https://jsonplaceholder.typicode.com/posts", true);
        request.onload = ()=>{
            if(request.status == 200 && request.status < 300){
                notify.classList.add("hide");
            }else{
                offline();
            }
        }
        
        request.onerror = ()=>{
            offline();
        }
        request.send();
    }

    function offline(){
        notify.classList.remove("hide");
    }

    setInterval(()=>{
        checkInternet();
    }, 100);
}

তো আশা করছি প্রজেক্ট কাজ করছে। ঠিকভাবে কাজ করছে কি না সেটা চেক করার জন্য ওনার ইন্টারনেট অন অফ করে দেখতে পারেন।


তো পোস্ট মূলত শেষ। আপনি যদি পুরো প্রজেক্ট এর সকল কোড ডাউনলোড করে রাখতে চান তাহলে নিচে প্রজেক্ট এর গুগল ড্রাইভ লিঙ্ক দিলাম সেখান থেকে ডাউনলোড করতে পারবেন, ধন্যবাদ সবাইকে।


Download Project

Getting Info...

إرسال تعليق

Cookie Consent
We serve cookies on this site to analyze traffic, remember your preferences, and optimize your experience.
Oops!
It seems there is something wrong with your internet connection. Please connect to the internet and start browsing again.
Site is Blocked
Sorry! This site is not available in your country.