顯示具有 javaScript 標籤的文章。 顯示所有文章
顯示具有 javaScript 標籤的文章。 顯示所有文章

2021年6月1日 星期二

使用js將相對路徑轉為絕對路徑

標題:使用JavaScript將相對路徑轉為絕對路徑。

小標題:使用JavaScript將相對路徑轉為絕對路徑。

本篇文章網址:https://corettainformation.blogspot.com/2021/06/js.html


今天要使用JavaScript將相對路徑轉為絕對路徑。

方法如下

首先,使用JavaScript建立A物件:

var A=document.createElement("A");


上述程式碼相當於建立HTML的<a></a>


然後將它的href指向相對路徑:

A.href="./image/anime/warrior/warrior-145597_1280_edit_small.png";


然後再將它的網址log出來:

console.log(A.href);


就會看見,輸入的相對路徑已經轉成絕對路徑了。

2021年1月25日 星期一

[教學]使用js引入jQuery

標題:[教學]使用JavaScript引入jQuery

或:[教學]如何從 JavaScript import jQuery?

或:import jQuery frome JavaScript 

本篇文章網址:https://corettainformation.blogspot.com/2021/01/jsjquery.html


最近有個需求,就是要在執行期間導入jQuery,困擾我了一會兒,但還是找到解法了,只要在JavaScript中輸入以下四行就行:

var script = document.createElement('script');

script.src = 'https://code.jquery.com/jquery-3.4.1.min.js';

script.type = 'text/javascript';

document.getElementsByTagName('head')[0].appendChild(script);


當然,在瀏覽器中按F12開啟主控台,並輸入以上四行,也能在任何網站中引入jQuery。


參考資料:

https://stackoverflow.com/questions/1140402/how-to-add-jquery-in-js-file

2020年10月9日 星期五

如何在three.js中實現MIP(maximum intensity projection)

 標題:如何在three.js中實現MIP(maximum intensity projection)

很簡單,只要對material加這兩行:

material.blending = THREE.CustomBlending;

material.blendEquation = THREE.MaxEquation;


加完之後,最大密度投影就完成了:



2020年6月29日 星期一

[解決方法]使用JavaScript發送一次Request卻得到多次回傳結果的錯誤

今天在JavaScript使用XMLHttpRequest並send出去後,竟然得到三次回傳:

解決方法:
只要把類似oReq.open("get", url, true)語法後面的true,改成false,就只會收到一次結果了。

2020年5月19日 星期二

[密技]如何快速統計Pixiv瀏覽次數

原本Pixiv站的瀏覽量似乎需要付費會員才能自動統計瀏覽量,那如果不是付費會員就只能打計算機了嗎? 不用的

首先,利用Chorme或Firefox之類的瀏覽器,開啟Pixiv有顯示瀏覽次數的頁面。


然後按鍵盤上的F12,會顯示以下畫面。

接著複製並貼上以下程式嗎:
var spans = document.getElementsByClassName("count");
var counts=0;
for (var i = 0; i < spans.length; i++) {
if((""+(spans[i].parentNode.innerText)).match('瀏覽')!=null)
    counts+=parseInt(spans[i].innerText);
}
console.log("此頁面的瀏覽量為:"+counts);

貼完程式碼後,按下鍵盤上的Enter,「該頁面」的瀏覽次數就統計完畢了。

注意這段程式碼僅適用於一個頁面,如果你的作品有好幾頁的話(例如我有兩頁作品集),就要在每一頁都做一次以上動作,再把每頁的數字加總起來就可以了。

如果有問題或發現程式碼不能用的歡迎一起討論喔,希望這篇文有幫助到各位^.^

2020年3月6日 星期五

[不專業評比]各主流程式語言效能比較

本篇將依據各主流程式語言執行的時間來比較效能差異

程式語言的速度僅供參考,效能往往取決於譯器而非語言本身


系統環境:

  • 作業系統:Windows10,64位元
  • CPU:intel i7 9700
執行環境:
  • Java:cmd
  • JavaScript:Chrome
  • C++:Visual Studio 2019
  • C#:Visual Studio 2019
  • Python:Spider
================
比較:各語言的IO效能

程式碼:
JAVA
  • for (var i=0;i<10000;i++)System.out.print(1);  
JavaScript
  • for (var i=0;i<10000;i++)console.log(1);
C++
  • for(int i=0;i<10000;i++) std::cout << 1;
C#
  • for (int i = 0; i < 10000; i++) Console.Write(1);
Python
  • for i in range(10000):
  •     print(1)

執行時間(單位:毫秒)

Java130
JavaScript73
C++176
C++(最佳化)129
C#136
C#(最佳化)132
Python142

=================
比較:各語言的一維陣列/串列填充效能

程式碼
JAVA
  • for (var i=0;i<1000000;i++)arr[i]=i; 
JavaScript
  • for (var i=0;i<1000000;i++)arr[i]=i;
C++
  • for (int i = 0; i < 1000000; i++)
  • number[i]=i;
C#
  • for (int i = 0; i < 1000000; i++) number[i]=i;
Python
  • for i in range(1000000):
  •     list0[i]=i


執行時間(單位:毫秒)

Java2
JavaScript6
C++2
C++(最佳化)2
C#4
C#(最佳化)2
Python98

=============================
比較:各語言的串列新增效能

程式碼
JAVA
  • for (int i = 0; i < 1000000; i++) st.push(i); 
JavaScript
  •  for (var i=0;i<10000000;i++)list.push(i);
C++
  • for (int i = 0; i < 1000000; i++)
  • mystack.push(i);
C#
  • for (int i = 0; i < 1000000; i++) myStack.Push(i); 
Python
  • for i in range(1000000):
  •     list0.append(i)

執行時間(單位:毫秒)

Java20
JavaScript135
C++690
C++(最佳化)12
C#59
C#(最佳化)59
Python94

========================
比較:各語言的遞迴效能(使用費氏數列)

程式碼
JAVA
  • public static long fib(int n){
  •         if(n==1)
  • return 1;
  • else if (n==2)
  • return 1;
  • else
  • return fib(n-1)+fib(n-2); 
  •     }   
  • fib(40);
JavaScript
  • function fib(n){
  •       if (n == 1)
  •         return 1;
  •       else if (n == 2)
  •         return 1;
  •       else
  •         return fib(n - 1) + fib(n - 2);
  •     }
  • fib(40);
C++
  • static long fib(int n) {
  • if (n == 1)
  • return 1;
  • else if (n == 2)
  • return 1;
  • else
  • return fib(n - 1) + fib(n - 2);
  • }
  • std::cout<<fib(40);
C#
  • static long fib(int n)
  •         {
  •             if (n == 1)
  •                 return 1;
  •             else if (n == 2)
  •                 return 1;
  •             else
  •                 return fib(n - 1) + fib(n - 2);
  •         }
  • fib(40);
Python
  • def fib(n):
  •     if n == 1:
  •         return 1
  •     elif n == 2:
  •         return 1
  •     else:
  •         return fib(n - 1) + fib(n - 2); 
  • fib(40)

執行時間(單位:毫秒)

Java224
JavaScript632
C++2527
C++(最佳化)251
C#2035
C#(最佳化)343
Python17947

================
比較:各語言大型二維陣列效能

程式碼(灰色字不列入計時):
JAVA

  • int arr[][]; 
  •  arr = new int[10000][10000]; 
  • for(int i = 0; i < arr.length; i++)  
  •             for(int j = 0; j < arr[i].length; j++) 
  •                 arr[i][j] = 0; 
  • for(int i = 0; i < arr.length; i++)  
  •             for(int j = 0; j < arr[i].length; j++) 
  •                 arr[i][j] = 255-arr[i][j]; 
JavaScript
  • var tArray = new Array();
  •     for (var k = 0; k < 10000; k++) {
  •       tArray[k] = new Array();
  •       for (var j = 0; j < 10000; j++) {
  •         tArray[k][j] = 0;
  •       }
  •     }
  •     var y=0,x=0;
  •  for (y = 0; y < 10000; y++) {
  •       for (x = 0; x < 10000; x++) {
  •         tArray[y][x] = 255 - tArray[y][x];
  •       }
  •     }
C++
  • unsigned char** fp = new unsigned char* [10000];
  • int x = 0, y = 0;
  • for (int j = 0; j < 10000; j++)
  • fp[j] = new unsigned char [10000];
  • for (y = 0; y < 10000; y++)
  • {
  • for (x = 0; x < 10000; x ++)
  • {
  • fp[y][x] = 255 - fp[y][x];
  • }
  • }

C#
  • int[,] number = new int[10000, 10000];
  •             int y = 0, x = 0;
  •             for (y = 0; y < 10000; y++) for (x = 0; x < 10000; x++) number[y,x] = 0;
  • for (y = 0; y < 10000; y++)
  • {
  • for (x = 0; x < 10000; x++)
  • {
  •  number[y,x] = 255 - number[y,x];
  • }
  •  }
Python
  • score=[[0]*10000 for i in range(10000)]
  • for i in range(10000):
  •     for j in range(10000):
  •         score[i][j]=0
  • for i in range(10000):
  •     for j in range(10000):
  •         score[i][j]=255-score[i][j]

執行時間(單位:毫秒)

Java52
JavaScript194
C++185
C++(最佳化)45
C#437
C#(最佳化)171
Python13908

=======================
整體上來說,在各個方面每個語言各有優劣

但依我個人排序的順序比為:
  1. C++(最佳化)
  2. Java
  3. C#(最佳化)
  4. JavaScript
  5. Python
不過就如開頭紅字所說,程式語言不應用來直接比較速度,如果想要更優的效能,編寫出更好的演算法帶來的速度效益往往超過更換語言的速度效益

對此篇有興趣的歡迎指教,希望以後可以出更多IT相關文章

2020年1月29日 星期三

[密技]兩個解決CSS transform在chrome破圖+閃爍的方法

在chrome中使用CSS transform旋轉影像時可能會出現破圖+畫面閃爍的問題(在firefox則不會)

這可能是因為他沒有真正發揮到硬體(GPU)加速

這時有兩個解決方式