জুমলা 3-এ মোবাইল ডিভাইসের জন্য পারফরম্যান্স অনুকূল করতে ডিভাইস বা ভিউপোর্টের আকারের ভিত্তিতে একটি মডিউল কীভাবে অক্ষম করা যায়?


14

আমি অ্যাডাপটিভ ওয়েব ডিজাইনের (যেমন - একটি ডিজাইন যা সমস্ত ডিভাইসের জন্য প্রদর্শন সামঞ্জস্য করে এবং ভিউ পোর্টের আকারের উপর ভিত্তি করে সামগ্রী সরবরাহ করে) পৃথক 'মোবাইল' সাইটের ডিজাইনের বিপরীতে আমি প্রতিক্রিয়াশীল ওয়েব ডিজাইনের প্রবক্তা

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

পারফরম্যান্স গতি বাড়ানোর জন্য আমি কীভাবে কোনও মডিউল কার্যকরভাবে অক্ষম করতে ভিউপোর্টের আকারটি ব্যবহার করতে পারি (অর্থাত্ এটি কার্যকর করা থেকে বিরত রাখে)?

উত্তর:


15

অ্যাডভান্সড মডিউল ম্যানেজার ( http://www.nonumber.nl/extensions/advancedmodulemanager ) আপনাকে ব্রাউজার TYPE এর উপর ভিত্তি করে মডিউল নির্ধারণ করতে দেয়। সুতরাং আপনি মোবাইল, বা ডেস্কটপ বা নির্দিষ্ট ডিভাইস নির্বাচন করতে পারেন। এটি আপনাকে আকার অনুসারে বাছাই করতে দেয় না, সুতরাং এটি কেবলমাত্র একটি ডিগ্রির জন্য কার্যকর।

পিএইচপি এবং জাভাস্ক্রিপ্টের সংমিশ্রণের মাধ্যমে এটিও সম্ভব হতে পারে। আমি এই প্রশ্নটি আমার বন্ধুকে পাঠাব, তাঁর ধারণা থাকতে পারে।


কী সুন্দর ধারণা, আমি কখনও এএমএম ব্যবহার করার কথা ভাবি নি।
জ্যাকজয়ে

পিটার এএমএম-তে প্রচুর দুর্দান্ত কার্যকারিতা রেখেছিল, এটি আমার মতে হওয়া আবশ্যক।
ফায়

আমি এটার সাথে একমত. যদি আমি এমন কোনও থিমের সাথে আটকে থাকি যেখানে এটি অন্তর্নির্মিত না থাকে (উদাহরণস্বরূপ warp 7 থিমগুলি এটি অন্তর্নির্মিত থাকে) তবে আমি এএমএম ব্যবহার করব।
ব্রায়ান পিট

@ ব্রায়ানপাইট - আপনি কীভাবে এটি WARP7 এর সাথে কাজ করে তার আরও বিশদ সরবরাহ করতে পারেন?
NivF007

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

10

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

উদাহরণ পর্দার আকারের উপর নির্ভর করে এটি সম্ভব যে প্রতিকৃতি মোডে থাকা কোনও ট্যাবলেট মডিউলটি লোড না করার কারণ হতে পারে তবে সেই একই ট্যাবলেটটিতে ল্যান্ডস্কেপ মোডে একবারে সেই সামগ্রীর প্রয়োজন হতে পারে।


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

3
@ ডোন দুঃখিত, এটি তখন কোনও প্রতিক্রিয়াশীল নকশা নয়, এবং ডেস্কটপে প্রচুর লোক রয়েছে যা উইন্ডোতে কাজ করার সময় পুনরায় আকার দেওয়ার বৈশিষ্ট্যগুলির সুযোগ নেয়। প্রতিক্রিয়াশীল ডিজাইনটি কোনও নির্দিষ্ট ডিভাইস থেকে আসেনি কিনা তা ভিউপোর্টের পরিবর্তনের প্রতিক্রিয়া জানায়।
স্পুঙ্কি

2
আমি রাজী. তবে আমি "প্রতিক্রিয়াশীল নকশা" এর লক্ষ্যগুলির সাথে একমত নই। আমি যেমন বলেছিলাম, ডিজাইনাররা এটি দেখানোর স্বপ্ন দেখেছিল। তারা এই সত্যটি ভুলে যায় যে আইফোনের কখনও বিশাল রেজোলিউশন হবে না। tl; dr - প্রতিক্রিয়াশীল ডিজাইন মোবাইল ডিভাইসে কিছু যায় আসে না । আমি বরং "বিশুদ্ধ প্রতিক্রিয়াশীল ডিজাইন" না করে নেটওয়ার্ক ব্যান্ডউইথকে সংরক্ষণ করব।
ডন গিলবার্ট

2
@ ডনগিলবার্ট এবং স্পুঙ্কিতে - আইএমও - আপনি উভয়ই ঠিক বলেছেন। 'যথাযথ' প্রতিক্রিয়াশীল ওয়েব ডিজাইন এর সংজ্ঞা পরিবর্তন করে না অন্তর্ভুক্ত বিষয়বস্তু '- আমি প্রশ্ন সম্পাদনা হবে RWD / AWD অন্তর্ভুক্ত করা - প্রতিক্রিয়াশীল ওয়েব ডিজাইন এবং অভিযোজিত ওয়েব ডেলিভারি en.wikipedia.org/wiki/Responsive_web_design
NivF007

8

এটি আমি একটি জেএস ক্লাস যা কিছুক্ষণ আগে তৈরি করেছি যা ভিভপোর্টগুলি সনাক্ত করতে জাভাস্ক্রিপ্ট ব্যবহার করতে পারে, এটি কখনও কঠোর পরীক্ষার মাধ্যমে করা হয়নি তবে কাজ করে।

function ResJS(){
    this.min = 0;
    this.max = 0;
    this.config = config;
    this.width = function(){
        return jQuery(window).width();
    }
    this.breakpoint = function(min,max){
        this.min = min;
        this.max = max;
        this.outside = false;
        this.inside = false;
        this.triggeredOut = false;
        this.triggeredIn = false;
        this.enter = function(callback){
            var context = this;
            jQuery(window).on('resize',function(){
                if(context.min<context.width()&&context.max>context.width()){
                    if(!context.triggeredIn){
                        jQuery(document).ready(function(){callback(context.min,context.max)});
                        context.inside = true; //browser width has entered breakpoint
                        context.outside = false; //browser has left another breakpoint
                        context.triggeredIn = true; //triggered event for breakpoint
                        context.triggeredOut = false; //be ready to trigger leave event
                    }
                }else{
                    context.inside = false; //browser width is not within breakpoint
                    context.outside = true; //brower width is outside of breakpoint
                }
            });
            if(context.min<context.width()&&context.max>context.width()){
                jQuery(document).ready(function(){callback(context.min,context.max)});
                context.inside = true;
                context.outside = false;
                context.triggeredIn = true;
                context.triggeredOut = false;
            }else{
                context.inside = false;
                context.outside = true;
                context.triggeredOut = true;
                context.triggeredIn = false;
            }
            return this;
        }
        this.leave = function(callback){
            var context = this;
            jQuery(window).on('resize',function(){
                if(context.outside&&!context.triggeredOut){
                    jQuery(document).ready(function(){callback(context.min,context.max)});
                    context.triggeredIn = false;
                    context.triggeredOut = true;
                }
            });     
            return this;
        }
        return this;
    }
    return this;
}

মূলত আপনি এটি এর মতো ব্যবহার করেন

ResJS()
    .breakpoint(0,600)
    .enter(function(min,max){
        console.log(min,max,'enter');
    })
    .leave(function(min,max){
        console.log(min,max,'leave');
    });

ব্রেকপয়েন্টে প্রস্থের জন্য ন্যূনতম / সর্বাধিক পরামিতি রয়েছে, তারপরে এটিতে প্রবেশের জন্য একটি জড়িত ফাংশন রয়েছে এবং কিছু জেএস কোড চালানোর জন্য একটি কলব্যাক রয়েছে।

এটি কীভাবে কাজ করে সে সম্পর্কে আমি বিশদে যেতে পারি না, যেমন আমি এটি অনেক আগে তৈরি করেছিলাম তবে এটি আপনাকে সহায়তা করবে যদি এটি ব্যবহারে বিনামূল্যে। এটি ভিউপোর্টের ভিত্তিতে অজ্যাক্সের মাধ্যমে মডিউলগুলি লোড করতে ব্যবহৃত হতে পারে। আমি বিশ্বাস করি জুমলার কম_জ্যাক্স এর সাথে কিছু দুর্দান্ত বৈশিষ্ট্য তৈরি করতে ব্যবহার করা যেতে পারে।


1
এটি ধাঁধাটির একটি প্রধান অংশের মতো দেখাচ্ছে এবং আকর্ষণীয় সম্ভাবনা রয়েছে - উত্তরের জন্য এবং বিশেষত কোড পোস্ট করার জন্য আপনাকে ধন্যবাদ।
NivF007

1
শীর্ষের উত্তরটি আমার সহকর্মী, এটি আমার ধারণা কমবেশি: পি
জর্ডান রামস্টাড

3

আর একটি সমাধান:

আপনি এটির মতো একটি সার্ভার সাইড ডিভাইস সনাক্তকরণ ব্যবহার করতে পারেন: http://momotdetect.net/ এখানে জুমলা প্লাগইন http://www.yagendoo.com/en/blog/free-momot-detection-plugin-for-joomla.html এবং তারপরে আপনার নিজস্ব মোড_ ক্রোম শৈলীর সাথে জুমলা / টেম্পলেটগুলি / আপনার টেম্পলেট / এইচটিএমএল / মডিউলগুলি ph তারপরে আপনি যেকোন ডিভাইস বা রেজোলিউশনের পক্ষে আপনার বিবৃতি পছন্দ হলে আপনি যতগুলি পিএইচপি লিখতে পারেন।


3

আপনি যদি পারফরম্যান্স দ্রুত করতে চান তবে অপ্রয়োজনীয় মডিউলগুলি লোড করবেন না। যদি এটি ছোট পর্দায় প্রয়োজনীয় না হয় তবে বড় স্ক্রিনগুলিতেও এটি প্রয়োজনীয় নয়।

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

একজন ভাল ডিজাইনার হোন এবং আপনার সমস্ত ব্যবহারকারীর স্ক্রিনের আকার নির্বিশেষে একটি অনুকূলিত সাইট অভিজ্ঞতা দিন।


2

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


2

আমি সাধারনত সিএসএস @ মিডিয়া ব্যবহার করে এটি ঘটায়। স্ক্রিনের আকারের উপর নির্ভর করে জিনিসগুলি আড়াল করা সহজ করে তোলে এবং ল্যান্ডস্কেপ ট্যাবলেটটি প্রদর্শন করার জন্য যথেষ্ট প্রশস্ত এবং প্রতিকৃতির প্রশস্ততা না থাকলে এমন সময়গুলির জন্য পার্স করে। এখানে একটি উদাহরণ:

@media (max-width:699px) {
    #moduleid, .modulewrapperclass {display:none}
}

আমি সাধারণত একটি সম্পূর্ণ মডিউল অবস্থান লুকাতে এটি ব্যবহার করি তাই আমি আমার সিএসএস নির্বাচককে সেই অবস্থানের মোড়কের (বা কিছু টেমপ্লেটগুলিতে অবস্থিত) বেস করি।


আপনার উত্তরের জন্য ধন্যবাদ. সিএসএস মিডিয়া-ক্যোয়ারী পদ্ধতির সমস্যাটি হ'ল আপনি এখনও একটি মডিউল চালাচ্ছেন (যদিও আপনি এটি প্রদর্শন না করার জন্য বেছে নিচ্ছেন)। আমি যে সমাধানটির সন্ধান করছি তা মডিউলটি প্রদর্শিত না হলে চালিত করবে না।
NivF007

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

1

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


0

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

অনুদান: http://www.gantry-framework.org/docamentation/joomla/advanced/ দায়িত্বজ্ঞান_গ্রিড_সিস্টেম.এমডি

ওয়ার্ড: http://www.yootheme.com/blog/2012/06/12/warp-gets- দায়বদ্ধ

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.