ডিআইওয়াই মিনিফিকেশন
কোনও মিনিফায়ার সঠিকভাবে বাজে কোডটি সংকোচন করতে পারে না।
এই উদাহরণে আমি কেবল একটি মিনিফায়ার কতটা তা দেখাতে চাই।
খাটো করার আগে আপনার কী করা উচিত
এবং jQuery সম্পর্কিত ... আমি jQuery.jQuery ব্যবহার করি না পুরানো ব্রাউজারগুলির জন্য, এটি সামঞ্জস্যতার কারণে তৈরি করা হয়েছিল .. caniuse.com পরীক্ষা করুন, প্রায় প্রতিটি ব্রাউজারে কাজ করে (এছাড়াও ie10 এখন মানীকৃত), আমার মনে হয় এখন এটি আপনার ওয়েব অ্যাপ্লিকেশনটি ধীর করার জন্য এখানে ... আপনি যদি পছন্দ করেন তবে $()
আপনার নিজের সাধারণ ফাংশনটি তৈরি করা উচিত nd এবং আপনার ক্লায়েন্টদের যদি 100 কেবি জেকুরি স্ক্রিপ্ট প্রতিটা ডাউনলোড করার প্রয়োজন হয় তবে আপনার কোডটি সংকোচনের জন্য কেন বিরক্ত করবেন? আপনার সঙ্কুচিত কোডটি কত বড়? 5-6 কেবি ..? এটিকে আরও সহজ করতে আপনি যে টন প্লাগইন যুক্ত করেছেন সে সম্পর্কে কথা বলবেন না।
আসল কোড
আপনি যখন কোনও ফাংশন লেখেন তখন আপনার ধারণা থাকে, স্টাফ লিখতে শুরু করুন এবং কখনও কখনও আপনি নীচের কোডের মতো কিছু শেষ করেন code কোডটি কাজ করে ow এখন বেশিরভাগ লোক চিন্তাভাবনা বন্ধ করে দেয় এবং এটিকে একটি মিনিফায়ারে যুক্ত করে প্রকাশ করে।
function myFunction(myNumber){
var myArray = new Array(myNumber);
var myObject = new Object();
var myArray2 = new Array();
for(var myCounter = 0 ; myCounter < myArray.length ; myCounter++){
myArray2.push(myCounter);
var myString = myCounter.toString()
myObject[ myString ] = ( myCounter + 1 ).toString();
}
var myContainer = new Array();
myContainer[0] = myArray2;
myContainer[1] = myObject;
return myContainer;
}
এখানে সংশোধিত কোড জারি করুন (আমি নতুন লাইন যুক্ত করেছি)
( Http://javascript-minifier.com/ ) ব্যবহার করে খাটো করা হয়েছে
function myFunction(r){
for(var n=new Array(r),t=new Object,e=new Array,a=0;a<n.length;a++){
e.push(a);
var o=a.toString();
t[o]=(a+1).toString()
}
var i=new Array;
return i[0]=e,i[1]=t,i
}
তবে এই সমস্ত বর্ণ, আইএফ, লুপ এবং সংজ্ঞা কি প্রয়োজনীয়?
বেশিরভাগ সময় নেই !
- অপ্রয়োজনীয় অপসারণ যদি, লুপ, var
- আপনার মূল কোডটির একটি অনুলিপি রাখুন
- মিনিফায়ার ব্যবহার করুন
বিকল্প (কার্যকারিতা এবং সংক্ষিপ্ত কোড বাড়ায়)
- শর্টহ্যান্ড অপারেটর ব্যবহার করুন
- বিটওয়াইজ অপারেটরগুলি ব্যবহার করুন (ব্যবহার করবেন না
Math
)
- আপনার টেম্পোর ওয়ারগুলির জন্য একটি, বি, সি ... ব্যবহার করুন
- পুরানো বাক্য গঠন ব্যবহার করুন (
while
, for
... না forEach
)
- স্থানধারক হিসাবে ফাংশন আর্গুমেন্ট ব্যবহার করুন (কিছু ক্ষেত্রে)
- অপ্রয়োজনীয় অপসারণ
"{}","()",";",spaces,newlines
- মিনিফায়ার ব্যবহার করুন
এখন যদি কোনও মিনিফায়ার আপনার কোডটি ভুল করে সংকোচন করতে পারে।
কোনও মিনিফায়ার সঠিকভাবে বাজে কোডটি সংকোচন করতে পারে না।
ডিআইওয়াই
function myFunction(a,b,c){
for(b=[],c={};a--;)b[a]=a,c[a]=a+1+'';
return[b,c]
}
এটি উপরের কোডগুলির মতো ঠিক একই জিনিস করে।
কর্মক্ষমতা
http://jsperf.com/diyminify
আপনার যা প্রয়োজন তা সবসময় আপনার ভাবতে হবে:
আপনি বলার আগে "নুনি নীচের মত কোডটি লিখবে" যান এবং এখানে প্রথম 10 টি প্রশ্ন চেক করুন ...
এখানে প্রতি দশ মিনিটে আমি দেখতে পাই এমন কয়েকটি সাধারণ উদাহরণ।
পুনঃব্যবহারযোগ্য শর্ত চাই
if(condition=='true'){
var isTrue=true;
}else{
var isTrue=false;
}
var isTrue=!!condition
যদি উপস্থিত থাকে তবেই হ্যাঁ সতর্ক করুন
if(condition==true){
var isTrue=true;
}else{
var isTrue=false;
}
if(isTrue){
alert('yes');
}
!condition||alert('yes')
সতর্কতা হ্যাঁ বা না
if(condition==true){
var isTrue=true;
}else{
var isTrue=false;
}
if(isTrue){
alert('yes');
}else{
alert('no');
}
alert(condition?'yes':'no')
একটি সংখ্যাকে একটি স্ট্রিং বা বিপরীতে রূপান্তর করুন
var a=10;
var b=a.toString();
var c=parseFloat(b)
var a=10,b,c;
b=a+'';
c=b*1
var a=10;
a+='';
a*=1;
একটি সংখ্যা বৃত্তাকার
var a=10.3899845
var b=Math.round(a);
var b=(a+.5)|0;
একটি সংখ্যা মেঝে
var a=10.3899845
var b=Math.floor(a);
var b=a|0;
সুইচ কেস
switch(n)
{
case 1:
alert('1');
break;
case 2:
alert('2');
break;
default:
alert('3');
}
var a=[1,2];
alert(a[n-1]||3);
var a={'1':1,'2':2};
alert(a[n]||3);
alert([1,2][n-1]||3);
alert([1,2][--n]||3);
ধরার চেষ্টা কর
if(a&&a[b]&&a[b][c]&&a[b][c][d]&&a[b][c][d][e]){
console.log(a[b][c][d][e]);
}
var x;
try{x=a.b.c.d.e}catch(e){}
!x||conole.log(x);
আরও যদি
if(a==1||a==3||a==5||a==8||a==9){
console.log('yes')
}else{
console.log('no');
}
console.log([1,3,5,8,9].indexOf(a)!=-1?'yes':'no');
তবে indexOf
ধীরে ধীরে এই https://stackoverflow.com/a/30335438/2450730 পড়ুন
সংখ্যা
1000000000000
1e12
var oneDayInMS=1000*60*60*24;
var oneDayInMS=864e5;
var a=10;
a=1+a;
a=a*2;
a=++a*2;
বিটওয়াইজ / শর্টহ্যান্ড সম্পর্কে আমি কিছু সুন্দর নিবন্ধ / সাইট পেয়েছি:
http://mudcu.be/jorter/2011/11/bitwise-gems-and-other-optimizations/
http://www.140byt.es/
http://www.jquery4u.com/javascript/shorthand-javascript-techniques/
এছাড়াও আপনি অনেক পছন্দসই সার্চেইনগাইন দিয়ে অনুসন্ধান করলে শর্টহ্যান্ড এবং বিটউজির পারফরম্যান্স দেখাচ্ছে এমন অনেকগুলি জাসস্পিফ সাইট রয়েছে।
আমি কয়েক ঘন্টা যেতে পারতাম .. তবে আমি মনে করি এটি আপাতত যথেষ্ট।
আপনার যদি কিছু প্রশ্ন থাকে তবে জিজ্ঞাসা করুন।
এবং মনে রাখ
কোনও মিনিফায়ার সঠিকভাবে বাজে কোডটি সংকোচন করতে পারে না।